行列の問題に遭遇しましたが、最適な解決策を見つけようとしていました。問題文は質問のトピックそのものです。さらに下を参照
Example
Input matrix
0 1 1 1
0 0 1 1
1 1 1 1 // this row has maximum 1s
0 0 0 0
Output: 2
私の解決策:行がソートされているので、各行で最初に 1 が出現するバイナリ検索を実行すると、1 のカウントは になりますtotal number of columns minus index of 1st 1
。
これは で実行O(m*logn)
できますが、線形時間で実行できるかどうかのロジックを知りたいと思っていました。
ありがとうございました!