顺序表7:485. 最大连续 1 的个数
题目链接
https://leetcode.cn/problems/max-consecutive-ones/description/
给定一个二进制数组 nums , 计算其中最大连续 1 的个数。
示例 1:
输入:nums = [1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
示例 2:
输入:nums = [1,0,1,1,0,1]
输出:2
提示:
1 <= nums.length <= 105
nums[i] 不是 0 就是 1.
点击查看代码
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int pre=0,ret=0;
for(int i=0;i<nums.size();++i){
if(nums[i]==1){
ret++;
if(ret>pre){
pre=ret;
}
}else{
ret=0;
}
}
return pre;
}
};
解释
pre:用于记录到目前为止所找到的连续 1 的最大数量,初始值为 0。
ret:用于记录当前正在统计的连续 1 的数量,初始值也为 0。
if (ret > pre):检查当前连续 1 的数量 ret 是否大于之前记录的最大连续 1 的数量 pre。
如果是,则更新 pre 的值为 ret,即记录下新的最大连续 1 的数量。
当 nums[i] 的值不为 1 时,说明连续 1 的序列被打断了。
ret = 0:将当前连续 1 的数量 ret 重置为 0,以便重新开始统计下一个连续 1 的序列。

浙公网安备 33010602011771号