不会飞的章鱼

熟能生巧,勤能补拙;念念不忘,必有回响。

Leetcode-485-Max Consecutive Ones | 最大连续1的个数

题目链接

Max Consecutive Ones

解析

题目意思

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

注意:

  • 输入数组只包含0和1
  • 数组长度是正整数并且不会超过10000

解决

遍历数组并对连续的数计数,最终取最大值。

Golang

  • 错误

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    func findMaxConsecutiveOnes(nums []int) int {
    var max int //声明最大值
    for i:=0;i <= len(nums);i++ {
    for _,v := range nums {
    if nums[i] = v {
    max++
    } else {
    max=0
    }
    }
    }

    return max
    }
  • 正确1

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    func findMaxConsecutiveOnes(nums []int) int {
    res := 0
    count := 1
    //考虑特殊情况
    if len(nums) == 1 && nums[0] == 1 {
    return 1
    }
    for i := 0; i < len(nums)-1; i++ {
    if nums[i] == nums[i+1] {
    if nums[i] == 1 {
    count++ //计数
    } else {
    continue
    }
    } else {
    count = 1 //没有合适的就置为1
    }
    if count > res {
    res = count
    }
    }
    return res
    }
  • 正确2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    func findMaxConsecutiveOnes(nums []int) int {
    var sum, max int
    for _, v := range nums {
    sum += v
    sum *= v
    if sum > max {
    max = sum
    }
    }
    return max
    }
------ 本文结束------
如果本篇文章对你有帮助,可以给作者加个鸡腿~(*^__^*),感谢鼓励与支持!