题目:
个人思路分享:
这里不讲滑动窗口法,还是最简单的思路,跟前面的题很类似
定义变量count来记录连续出现了几次1,max记录最大连续出现次数
所以思路就打开了,一次for循环即可
再使用if判断,若当前数为1,count++,
若非1,则与max对比并赋值,然后将count清零,等待下一次重新记录
到这里就是基本思路
但其实还差点东西,当时我第一次就没注意到,会有特别情况
比如:数组最后一项是1 则无法进入与max对比判断
所以只需要再最后再加一个判断就行了
代码如下:
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int count = 0;
int max = 0;
for(int i = 0;i < nums.length;i++) {
if(nums[i] == 1) {
count++;
} else {
if(max < count) {
max = count;
}
count = 0;
}
}
return Math.max(max,count);
}
}
没有谁能每一次都百分百正确的看出来答案
一定要动手,不通过就再优化
只有动手,才能发现细节