初始通过程序:
class Solution {
int findMaxConsecutiveOnes(int[] nums) {
int result = 0;//时刻保存最大值
int count = 0;
for(int i =0;i<nums.length;i++){
if(nums[i]==1){
count++;
if(i==nums.length-1&&result<count){//数组结尾判断
result = count;
}
}else if(nums[i]==0&&result<count){ //判断零其实多余
result = count;
count = 0;
}else{
count = 0;
}
}
return result;
}
}
改进后程序,实际算法没改变,只是简化了语句(其实也没啥简化的,那些三元运算符看起来还不如判断逻辑清晰):
class Solution {
int findMaxConsecutiveOnes(int[] nums) {
int result = 0;//时刻保存最大值
int count = 0;
for(int i =0;i<nums.length;i++){
if(nums[i]==1){
count++;
}else {
result = result<count?count:result;
count = 0;
}
}
return result<count?count:result;
}
}