方法1:遍历数组,没遍历一次,都在max和maxNow比较,找最大值付给max,当遇到0,重置maxNow=0
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int max=0;
int maxNow=0;
for(int n:nums){
// if(n==0){
// maxNow=0;
// }else{
// maxNow++;
// }
// max=Math.max(max,maxNow);
//以上三句话可以写成
max=Math.max(max,maxNow=n==0?0:maxNow+1);
}
return max;
}
}
方法2:只有遇到0,或者在终点才让max和maxNow去比较,但是要注意,当终点是1的时候,一定要加一下
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int max=0;
int maxNow=0;
for(int i=0;i<nums.length;i++){
if(nums[i]==0||i==nums.length-1){
if(nums[i]==1){//这句话一定要有,终点是1,也要加1
maxNow++;
}
max=Math.max(max,maxNow);
maxNow=0;
}else{
maxNow++;
}
}
return max;
}
}