例如输入: nums = [1,1,0,1,1,1,0,1]
输出:3
解题思路:
我想的是遍历数组nums,用res接收每次遍历一个数后的结果,遇到1就加1,遇到零就清零,用resMax接收最大值,用三元运算符来保证每次遍历后resMax都是最大值。这里三元运算符其实就是一个if条件判断语句,相信大家在学习Java的过程中也会学到的。
但是这样写缺陷也很明显,每次遍历都会有一次比较判断。其实最好的应该是在遇到零的时候再进行比较。
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int res = 0;
int resMax = 0;
for(int i = 0;i<nums.length;i++){
if(nums[i]==1){
res += 1;
resMax = resMax>res? resMax:res;
}else{
res = 0;
}
}
return resMax;
}
}