Skip to content

Latest commit

 

History

History
31 lines (24 loc) · 1.1 KB

485.md

File metadata and controls

31 lines (24 loc) · 1.1 KB

Max Consecutive Ones

解法一

func findMaxConsecutiveOnes(nums []int) int {
    count := 0
    // 这里的count是一个计数值,是为了最后的输出。
    for i,j := 0,-1;i < len(nums);i++ {

    // i ,j 在这种题中一般都是两个指针
    // 即所谓的数组双指针问题,一个指针是i一个是j,i是主指针主索引,j是辅助指针。

    // 在这道题中j是关键,i - j是关键,如果当nums[i] == 0的时候这个时候i - j就不能增加。所以这个时候j就要等于i,如果不是0的时候这个i - j的值就要增加所以这个时候i - j就要++ 所以这就是为什么最开始的时候j = -1
    // 因为j要比i小一,才能在i - j的时候是增加的。

    // 在上次是0下次是1的时候j = i 然后i ++ 了但是j没有,所以差值仍然是+1

    // 如果连续几次都是nums[i] = 1 那么i一直在增加,j没有增加差值刚好是增加的次数。
        if nums[i] == 0 {
            j = i
        }else {
            if count < i - j {
                count = i -j
            }

        }
    }
    return count
}