输入只有0和1的数组(长度为正整数,且<10000),找到最大的连续1的个数
好比[1,1,0,1,1,1],输出3java
遍历数组,统计当前连续个数curCount和最大连续值maxCount。If当前数组值为1,则curCount++;不然(值为0)比较curCount和maxCount,看是否须要替换,并把curCount置0
最后返回maxCount数组
错误:对于[1]这种边界条件没有考虑彻底。这种时候上面的逻辑会输出0,而应该是1。也就是结束的时候须要增长一个比较,万一若是最后的连续1的个数比较多。code
——解决:在遍历完,返回以前,增长一个[比较curCount和maxCount,看是否须要替换]。io
public class Solution { public int findMaxConsecutiveOnes(int[] nums) { int curCount=0,maxCount=0; for(int n: nums){ if(n==1) curCount++; else{ if(curCount>maxCount) maxCount=curCount; curCount=0; } } if(curCount>maxCount) maxCount=curCount; return maxCount; } }