最大连续1的个数

最大连续1的个数,第1张

给定一个二进制数组 nums , 计算其中最大连续 1 的个数。

示例 1:

输入:nums = [1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
示例 2:

输入:nums = [1,0,1,1,0,1]
输出:2

作者:力扣 (LeetCode)
链接:https://leetcode.cn/leetbook/read/array-and-string/cd71t/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

题目较为简单,基本思路就是用一个变量保存已经得到的连续1个数的最大值,用一个变量保存当前得到的连续1的个数,不断的去跟新最大值。
两个方向:
1.记录连续1的个数,当nums[i]为0时清零当前连续1的个数。
2.记录连续1的开始位置,既0的位置坐标,当nums[i]为1时计算并更新最大值,当nums[i]为0时更新0的坐标。

class Solution {
public:
    int findMaxConsecutiveOnes(vector<int>& nums) {
        int max_num = 0, temp = 0, zero = -1;
        for (int i = 0; i < nums.size(); i++)
        {
#if 0
            if(nums[i]==1){
                temp++;
            }else{
                temp=0;
            }
            max_num = max(max_num,temp);
#endif      
            if (nums[i] == 0)
            {
                zero = i;
                continue;
            }
            else
            {
                max_num = max(max_num, i - zero);
            }
        }
        return max_num;
    }
};

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1499281.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-25
下一篇 2022-06-25

发表评论

登录后才能评论

评论列表(0条)

保存