当前位置: 首页 > article >正文

LeetCode 1004.最大连续1的个数III

LeetCode 1004.最大连续1的个数III

image-20241030203544734

思路🧐:

  如示例1所示,我们可以翻转0来得到一个最大长度,那么我们可以用滑动窗口来解决,遇到1时不做判断,当遇到0时,用一个计数器来保存个数,当个数超过K时,右指针停止移动,开始移动左指针,当左指针遇到0时,计数器-1,直到计数器小于K时,再次移动右指针,并且每次都计算长度,当这样遍历完整个数组后,就可以得到一个最大值。

image-20241030203623694

代码🔎:

class Solution {
public:
    int longestOnes(vector<int>& nums, int k) {
        int ret = 0; 
        int count = 0;
        for(int right = 0,left = 0; right < nums.size(); right++)
        {
            if(nums[right] == 0)//当遇到0时,count++
                count++;
            while(count > k) //count大于k,需要出窗口
            {
                if(nums[left++] == 0) //left遇到0,count--
                    count--;
            }
            ret = max(ret,right - left + 1); //更新,这里需要每次更新
        }
        return ret;
    }
};

时间复杂度:O(N) 空间复杂度:O(1)
image-20241030204344924


http://www.kler.cn/a/400688.html

相关文章:

  • BERT模型中的多头注意力机制详解
  • Springboot基于GIS的旅游信息管理系统
  • Spark分布式计算中Shuffle Read 和 Shuffle Write的职责和区别
  • shell 100例
  • React Native 全栈开发实战班 -原生功能集成之相机与图片
  • STM32单片机设计防儿童人员误锁/滞留车内警报系统
  • 工程车识别算法平台LiteAIServer算法定制工程车类型检测算法:建筑工地安全管理的得力助手
  • 设备树总结学习
  • Arcgis js 加载mvt服务
  • 驾驭未来:Spring Boot汽车资讯门户
  • 网络协议之Ethernet
  • 3、.Net UI库:CSharpSkin - 开源项目研究文章
  • 算法——反转链表(leetcode206)
  • 数据分析-48-时间序列变点检测之在线实时数据的CPD
  • Go语言24小时极速学习教程(三)常见标准库用法
  • 3-KSQL
  • 【C#设计模式(11)——外观模式(Facade Pattern)】
  • 大数据治理:构建数据价值链的关键环节
  • 安全见闻6-9
  • 机器学习day5-随机森林和线性代数1最小二乘法
  • SQL复杂数据类型处理
  • 解决虚拟机未被自动分配ip
  • 康威定律和数据中心网络
  • 【Python项目】基于深度学习的音乐推荐方法研究系统
  • transformers 操作篇
  • OpenHarmony-2.DeviceInfo适配