找出O(n)中最大数为1的行

时间:2011-05-01 13:58:56

标签: arrays algorithm

  

可能重复:
  Matrix with only 1s and 0s

给定一个NxN数组,该数组仅由1和0组成,因此对于每一行,所有1都在0s.C之前

2 个答案:

答案 0 :(得分:3)

前面我在SO上看过类似的问题,如果有人找到了链接,请编辑。编辑:找到链接:Matrix with only 1s and 0s。解决方案是:

1. Start in the first row, most-left column
2. Go right until you hit a 0, if so, go down
3. If you hit a 1, the current row will be your new "best row"
4. Repeat from 2 until you either hit the bottom or the right border

给定一个NxN阵列,在最坏的情况下检查最好的N * 2-1单元中的N个单元,因此就行/列而言是O(N)。

答案 1 :(得分:1)

你的家庭作业解决方案是:

从第一行的第一个单元格开始。如果它包含1,则移动到同一行中的下一个单元格。如果它包含0,则移动到下一行中的同一单元格。重复此操作,直到处理完所有行为止。

您最后一次在行中移动的行是具有最大数量的行。