思路:
单指针扫描,一个max来维护最大的1,count来获取子串1的长度,遇到零就把count清零。
Go 实现版
func findMaxConsecutiveOnes(nums []int) int {
max,count := 0,0 // 初始化变量
for i := 0; i < len(nums); i++ { // 建立循环
if nums[i] == 1 { // 如果遇到1了,就维护count
count ++
}else { // 遇到0了,就比较max和count哪个大,把大的赋值给max,把count置0
max = Max(max,count)
count = 0;
}
}
max = Max(max,count) // 最后没办法维护,所以还需要比较一下
return max
}
// go语言没有自带Max(int,int)函数,所以自己写了一个
func Max(x,y int) int {
if x > y {
return x
}
return y
}