题目链接
解析
题目意思
给定一个二进制数组,计算数组中出现的最大连续1的个数。
注意:
- 输入数组只包含0和1
- 数组长度是正整数并且不会超过10000
解决
遍历数组并对连续的数计数,最终取最大值。
Golang
错误
1
2
3
4
5
6
7
8
9
10
11
12
13
14func 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
23func 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
11func findMaxConsecutiveOnes(nums []int) int {
var sum, max int
for _, v := range nums {
sum += v
sum *= v
if sum > max {
max = sum
}
}
return max
}