485. 最大连续 1 的个数 简单

给定一个二进制数组, 计算其中最大连续 1 的个数。

示例:

输入:[1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.

提示:

  • 输入的数组只包含 0 和 1 。
  • 输入数组的长度是正整数,且不超过 10,00

代码参考:

package main

import "fmt"

func main() {
    fmt.Println(findMaxConsecutiveOnes([]int{}))                 // 0
    fmt.Println(findMaxConsecutiveOnes([]int{1, 1, 0, 1, 1, 1})) // 3
}

func findMaxConsecutiveOnes(nums []int) int {
    n := len(nums)
    count, maxCount := 0, 0
    for i := 0; i < n; i++ {
        if nums[i] == 1 {
            count = 1
            for j := i + 1; j < n; j++ { // 向后找连续的 1
                if nums[j] == 0 {
                    break
                }
                count++
                i++
            }
            maxCount = max(count, maxCount)
        }
    }
    return maxCount
}

func max(x, y int) int {
    if x > y {
        return x
    }
    return y
}
最后编辑: kuteng  文档更新时间: 2021-06-05 10:16   作者:kuteng