思路就是判断是否是连续的1
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
if(nums == null || nums.length < 1){
return 0;
}
int len = 0;
int max = 0;
for(int i = 0;i < nums.length;i++){
if(i > 0 && nums[i] == nums[i-1] && nums[i] == 1){
len++;
}else if(nums[i] == 1){
len = 1;
}else{
len = 0;
}
max = Math.max(max,len);
}
return max;
}
}
但是效率不高,注意到的是判断条件没有必要写得如此冗余,参考别人的做法
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
if(nums == null || nums.length < 1){
return 0;
}
int len = 0;
int max = 0;
for(int i = 0;i < nums.length;i++){
if(nums[i] == 1){
len++;
}else{
max = Math.max(max,len);
len = 0;
}
}
return Math.max(max,len);
}
}