栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

最大连续1的个数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

最大连续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& 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;
    }
};
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/968473.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号