Leetcode 1337 - The K Weakest Rows in a Matrix

題目

Problem#

給你一個 mxn 的 matrix 其中每一列的 1 代表士兵、0 代表平民,所有的士兵都會在平民的左邊。
其中,第 i 列如果比第 j 列還弱,代表:

  • i 列的士兵比第 j 列的士兵數量還少
  • 如果士兵數量一樣,則 $i < j$

要你輸出前 k 弱的列有哪些?

測資限制#

  • $2 \le n, m \le 100$
  • $1 \le k \le m$

想法#

統計每列的士兵數量,接著排序,從小到大輸出 k 個即可。
統計可以是線性 or 二分;排序可以直接 sort 也可以用 priority_queue

  • 時間複雜度: $\mathcal{O}(n\log{n})$ (用二分搜)
  • 空間複雜度: $\mathcal{O}(n)$

AC Code#