【优选算法必刷100题】第011~012题(同向双指针:滑动窗口算法):最大连续1的个数 III、将 x 减到 0 的最小操作数

【优选算法必刷100题】第011~012题(同向双指针:滑动窗口算法):最大连续1的个数 III、将 x 减到 0 的最小操作数

🔥艾莉丝努力练剑:个人主页

专栏传送门:《C语言》《数据结构与算法》C/C++干货分享&学习过程记录Linux操作系统编程详解笔试/面试常见算法:从基础到进阶

⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平


🎬艾莉丝的简介:


🎬艾莉丝的算法专栏简介:



目录

011  最大连续1的个数 III

1.1  题目详解

1.2  算法原理以及代码实现

1.2.1  解法思路:滑动窗口

1.2.2  算法流程

1.2.3  代码实现

1.3  博主手记

012  将 x 减到 0 的最小操作数

2.1  题目详解

2.2  算法原理

2.2.1  解法思路:滑动窗口

2.2.2  算法流程

2.2.3  代码实现

2.3  博主手记

结尾


011  最大连续1的个数 III

力扣链接:1004. 最大连续1的个数 III

力扣题解链接:滑动窗口解决【最大连续1的个数III】问题

题目描述:

1.1  题目详解

1.2  算法原理以及代码实现

1.2.1  解法思路:滑动窗口

不要去想怎么翻转,不要把问题想的很复杂,这道题的结果无非就是一段连续的1中间塞了k个0。
因此,我们可以把问题转化成:求数组中一段最长的连续区间,要求这段区间内的个数不超过k个
既然是连续区间,可以考虑使用「滑动窗口」来解决问题。

1.2.2  算法流程

1、初始化一个大小为2的数组就可以当做哈希表(hash)了;初始化一些变量left = 0,right =0,ret = 0;

2、当right小于数组大小的时候,一直下列循环——

(1)让当前元素进入窗口,顺便统计到哈希表中;

(2)检查 0 的个数是否超标:

1)如果超标,依次让左侧元素滑出窗口,顺便更新哈希表的值,直到的个数恢复正
常;

(3)程序到这里,说明窗口内元素是符合要求的,更新结果;

(4)right++,处理下一个元素;

3、循环结束后,ret存的就是最终结果。

1.2.3  代码实现

class Solution { public: int longestOnes(vector<int>& nums, int k) { int ret = 0; for (int left = 0, right = 0, zero = 0; right < nums.size(); right++) { // 进窗口 if (nums[right] == 0) zero++; // 判断 while (zero > k) if (nums[left++] == 0) zero--; // 出窗口 // 更新结果 ret = max(ret, right - left + 1); } return ret; } };
时间复杂度:O(n),空间复杂度:O(1)。

1.3  博主手记

本题整个的思路、算法原理、解题过程博主在纸上推导了一遍,大家可以参考一下手记的推导过程!最好做题的过程中自己也推导一遍!!!自己推导很重要!


012  将 x 减到 0 的最小操作数

力扣链接:1658. 将 x 减到 0 的最小操作数

力扣题解链接:滑动窗口解决【将 x 减到 0 的最小操作数】问题

题目描述:

2.1  题目详解

2.2  算法原理

2.2.1  解法思路:滑动窗口

题目要求的是数组「左端+右端」两段连续的、和为x的最短数组,信息量稍微多一些,不易理清思路;我们可以转化成求数组内一段连续的、和为sum(nums) - x的最长数组。此时,就是熟悉的「滑动窗口」问题了。

这道题和我们介绍【滑动窗口】的第一道题目LCR 008. 长度最小的子数组有点像。

相关博客链接:【优选算法必刷100题】第009~010题(同向双指针:滑动窗口算法):长度最小的子数组、无重复字符的最长子串问题求解

2.2.2  算法流程

1、转化问题:求target = sum(nums) - x。如果target<0,问题无解;
2、初始化左右指针 l = 0,r = 0(滑动窗口区间表示为 [ l,r) ,左右区间是否开闭很重要,必须设定与代码一致),记录当前滑动窗口内数组和的变量sum=◎,记录当前满足条件数组的最大区间长度maxLen = -1;
3、当小于等于数组长度时,一直循环:

(1)如果sum<target,右移右指针,直至变量和大于等于target,或右指针已经移到头;
(2)如果sum>target,右移左指针,直至变量和小于等于target,或左指针已经移到头;
(3)如果经过前两步的左右移动使得sum == target,维护满足条件数组的最大长度,并
让下个元素进入窗口。

4、循环结束后,如果maxLen的值有意义,则计算结果返回;否则,返回 -1。

2.2.3  代码实现

class Solution { public: int minOperations(vector<int>& nums, int x) { int sum = 0; for (int a : nums)sum += a; int target = sum - x; //细节问题 if (target < 0)return -1; int ret = -1; for (int left = 0, right = 0, tmp = 0; right < nums.size(); right++)//tmp:和sum区分 { tmp += nums[right];//进窗口 //判断 while (tmp > target) tmp -= nums[left++];//出窗口 if (tmp == target)//更新结果 ret = max(ret, right - left + 1); } if (ret == -1)return ret; else return nums.size() - ret; } };
时间复杂度:O(n),空间复杂度:O(1)。

2.3  博主手记

本题整个的思路、算法原理、解题过程博主在纸上推导了一遍,大家可以参考一下手记的推导过程!最好做题的过程中自己也推导一遍!!!自己推导很重要!


结尾

往期回顾:

【优选算法必刷100题】第009~010题(同向双指针:滑动窗口算法):长度最小的子数组、无重复字符的最长子串问题求解

结语:看到这里,不要忘记给博主来个“一键四连”哦!

🗡博主在这里放了一只小狗,大家看完了摸摸小狗放松一下吧!🗡

૮₍ ˶ ˊ ᴥ ˋ˶₎ა


Read more

人工智能赋能传统医疗设施设备改造:路径、挑战与未来展望

人工智能赋能传统医疗设施设备改造:路径、挑战与未来展望

摘要 随着全球人口老龄化加剧、慢性病负担日益沉重以及公众对高质量医疗服务需求的不断增长,传统医疗体系正面临前所未有的压力。作为医疗服务的物质基础,传统医疗设施设备在运行效率、诊断精准度、运维成本和数据整合等方面暴露出诸多局限,成为制约医疗体系发展的瓶颈。人工智能(AI)技术的飞速发展,尤其是深度学习、计算机视觉和自然语言处理等领域的突破,为破解这些难题提供了革命性的工具。本文旨在系统性地探讨人工智能对传统医疗设施设备的改造路径、应用现状、面临挑战及未来趋势。 论文首先剖析了传统医疗设备普遍存在的“数据孤岛”、对人工经验的强依赖、高昂的运维管理成本以及有限的诊断效率等核心问题。随后,文章重点阐述了AI改造的四大核心方向: 一、以CNN、Transformer等模型为代表的智能诊断与影像识别技术,如何赋能CT、MRI等影像设备,实现疾病的早期筛查、病灶精准分割和报告自动生成; 二、结合物联网(IoT)技术的智能设备运维与预测性维护,如何通过实时监控和数据分析,变被动维修为主动预警,显著降低设备停机率; 三、AI与HIS/EMR系统集成,如何驱动临床流程自动化与辅助决策,优化从分诊、诊疗

By Ne0inhk
人工智能 Gemini 2.5 Pro:深度解析技术突破与实战应用

人工智能 Gemini 2.5 Pro:深度解析技术突破与实战应用

🎬 个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录》 《Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享》 ⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平 🎬 艾莉丝的简介: 文章目录 * 前言 * 一、技术架构的三大革命性突破 * 1.1 稀疏混合专家架构:容量与效率的完美平衡 * 1.2 动态推理预算:让AI学会"思考" * 1.3 超长上下文处理:百万Token带来的质变 * 二、多模态能力的实质性突破 * 2.1 视频理解到交互应用 * 2.2 图像到代码的精准转换 * 2.3 跨模态逻辑推理

By Ne0inhk

【保姆级教程】告别命令行!ClawX:可视化AI智能体,小白也能轻松玩出花!

【保姆级教程】告别命令行!ClawX:可视化AI智能体,小白也能轻松玩出花! 黑底白字、敲命令、改配置… 是不是每次想让AI乖乖干活,都得先在终端里跟那些"代码黑魔法"死磕? 现在不用了!今天给大家安利一款「零门槛AI神器」——ClawX,让你把OpenClaw的强大能力装进可视化界面,从此和枯燥的命令行说拜拜! 🚀 为什么你需要ClawX?(痛点暴击!) 想象一下: * 同事A:“你会用OpenClaw写个定时抓取新闻的Agent吗?” * 你(内心OS):“先安装Node.js,配置npm镜像源,再写个Cron表达式…啊,我的发际线!” ClawX直接把「AI智能体」变成了手机App: ✅ 零配置小白友好:下载安装→填API Key→开聊,全程不用碰黑窗口 ✅ 聊天式操作:像微信聊天一样输入prompt,AI直接给你出结果 ✅ 可视化自动化:拖拽设置定时任务,7x24小时当你的"数字打工人&

By Ne0inhk
2026 AI“龙虾”大战!OpenClaw、MaxClaw、AutoClaw、QClaw、ArkClaw、KimiClaw、LobsterAI等9款产品横评 + 场景推荐,谁值得你“养”?

2026 AI“龙虾”大战!OpenClaw、MaxClaw、AutoClaw、QClaw、ArkClaw、KimiClaw、LobsterAI等9款产品横评 + 场景推荐,谁值得你“养”?

2026 AI“龙虾”大战!OpenClaw、MaxClaw、AutoClaw、QClaw、ArkClaw、KimiClaw、LobsterAI等9款产品横评 + 场景推荐,谁值得你“养”? 🦞 2026年开年,最火的不是新GPT,而是“养龙虾”! 一只来自奥地利的开源AI Agent框架OpenClaw,以26万+ GitHub Stars一举登顶全球TOP1,超越React和Linux!它能真正“动手干活”:操控浏览器、发邮件、写代码、整理Excel、甚至远程微信控制电脑,被大家亲切叫作“小龙虾”。 大厂们闻风而动:MiniMax、月之暗面、智谱、腾讯、火山引擎、网易有道、阿里云等纷纷推出简化版/云托管版,门槛从“极客专属”降到“小白5分钟上手”。 本文横评9款主流产品(OpenClaw原版 + 8大商业/优化版)

By Ne0inhk