思路

很奢侈的一个思路就是,程序遍历数组,如果始终都是1,后果count也加1,如果遇到0,把count保留到max后而后置零,最初比照count、max哪个大,哪个大输入哪个。

谬误的题解

func findMaxConsecutiveOnes(nums []int) int {    max := 0    count := 0    for index := 0; index < len(nums); index++ {        if (nums[index] == 1) {            count++        } else {            if (count > max) {                max = count                count = 0            }        }    }     if (count > max) {        max = count    }     return max}

错在哪里?看了下没通过的那个测试用例,大略是这样散布的

[1, 1, .... , 0, 1, 1, 1, ... , 0, 1, 1, 1, ... 0, 1, ... ,1]

其实手动画下图就能懂了,最初能够看到 在遇到最初一个0的时候,因为count比 max 小,所以没有被置零,修复很简略,把 count = 0 从这一层循环里挪进去就好了

正确的题解

func findMaxConsecutiveOnes(nums []int) int {    max := 0    count := 0    for index := 0; index < len(nums); index++ {        if (nums[index] == 1) {            count++        } else {            if (count > max) {                max = count            }            count = 0        }    }     if (count > max) {        max = count    }     return max}

内存占用真的是很多,有点好奇他们用的都是什么解法?不过当初就不纠结这个了。