优选算法——滑动窗口2

优选算法——滑动窗口2

优选算法——滑动窗口

1.1004. 最大连续1的个数 III

题目描述

在这里插入图片描述

思路分析

这道题的核心是:找一个最长的子数组,其中最多包含 k 个 0

经典的 滑动窗口 问题。

为什么用滑动窗口?

  • 我们需要连续区间 → 滑动窗口天然适合
  • 窗口内维护「0 的个数 ≤ k」这个约束
  • 窗口扩张:右指针右移,遇到 0 就计数
  • 窗口收缩:当 0 的个数超过 k,左指针右移直到满足条件

算法流程

1. 初始化:left = 0, zeroCount = 0, maxLen = 0 2. 遍历数组,right 指针右移: - 如果 nums[right] == 0,zeroCount++ - 当 zeroCount > k 时,收缩左边界: - 如果 nums[left] == 0,zeroCount-- - left++ - 更新 maxLen = max(maxLen, right - left + 1) 3. 返回 maxLen 
在这里插入图片描述

代码实现

classSolution{public:intlongestOnes(vector<int>& nums,int k){int zero=0;int ret=0;for(int left=0,right=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;}};

2.1658. 将 x 减到 0 的最小操作数

题目描述

在这里插入图片描述

给定一个整数数组 nums 和整数 x。每次操作可以从数组最左端或最右端移除一个元素,使 x 减去该元素的值。返回将 x 恰好减到 0 的最小操作数,无法实现则返回 -1。

示例:

输入:nums = [1,1,4,2,3], x = 5 输出:2 解释:移除最右端的 3,再移除最右端的 2,x = 5 - 3 - 2 = 0 

思路分析

逆向思维 + 滑动窗口

从两端取数 → 等价于找一个中间连续子数组,其和为 total - x

  • 设数组总和为 sum
  • 问题转化为:找最长的子数组,使其和为 sum - x
  • 最小操作数 = n - 最长子数组长度

为什么?

  • 两端取走的元素和 = x
  • 剩下中间的元素和 = sum - x
  • 操作数最少 → 中间剩余最长

算法流程

1. 计算 target = sum(nums) - x 2. 如果 target &lt; 0,返回 -1(总和都不够减) 3. 滑动窗口找和为 target 的最长子数组 4. 返回 n - maxLen(若 maxLen 有效) 
在这里插入图片描述

代码实现

classSolution{public:intminOperations(vector<int>& nums,int x){int sum =0;int cmp=0;int ret=-1;for(auto e :nums){ sum+=e;}int target=sum-x;if(target<0)return-1;for(int left=0,right=0;right<nums.size();right++){ cmp+=nums[right];//进窗口while(cmp>target)//判断{ cmp-=nums[left++];//出窗口}if(cmp==target)//更新结果 ret=max(ret,right-left+1);}if(ret==-1)return ret;elsereturn nums.size()-ret;}};

Read more

Flutter 组件 deepseek 的适配 鸿蒙Harmony 实战 - 驾驭国产最强大模型 API、实现鸿蒙端 AI 原生对话与流式渲染的高效集成方案

Flutter 组件 deepseek 的适配 鸿蒙Harmony 实战 - 驾驭国产最强大模型 API、实现鸿蒙端 AI 原生对话与流式渲染的高效集成方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 deepseek 的适配 鸿蒙Harmony 实战 - 驾驭国产最强大模型 API、实现鸿蒙端 AI 原生对话与流式渲染的高效集成方案 前言 在 AI 浪潮席卷全球的今天,大模型(LLM)已成为移动应用创新的核心引擎。而在众多的国产模型中,DeepSeek 凭借其卓越的算法效率和极致的性价比,正成为开发者们的“真香”选择。 将 DeepSeek 这种顶尖的认知能力,植入到全面拥抱智能化、万物互联的鸿蒙(OpenHarmony)系统中,将碰撞出怎样的火花? deepseek 库为 Flutter 提供了极简的 API 封装,它完美支持了 SSE(流式事件流)响应,能让你的鸿蒙 App

By Ne0inhk
AI 视频争霸:通义万相 2.1 凭啥让画面质量和稳定性远超同行?

AI 视频争霸:通义万相 2.1 凭啥让画面质量和稳定性远超同行?

目录 引言  通义万相 2.1:概览与优势 技术创新点 架构设计层面 编解码技术层面 训练策略层面 推理优化层面 与其他模型对比 与 Sora 的比较 与 Luma 的比较 与 Pika 的比较 与蓝耘智算平台的协同:释放强大算力  注册与登录 Python 与通义万相 2.1 的结合应用 安装与环境配置 文生视频:用 Python 代码实现创意 图生视频:融合图像与 Python 创意 视频编辑:Python 助力视频后期创作 应用案例与实际场景 影视创作:助力特效与动画制作 广告设计:打造吸睛广告视频 教育领域:丰富教学资源 总结与展望 引言

By Ne0inhk
如何利用AI Coding提效?从工具到思维的全面升级

如何利用AI Coding提效?从工具到思维的全面升级

目录 前言 🔍 一、行业趋势:AI Coding 是"选择题"还是"必答题"? 📊 数据揭示:AI 正在改变开发生态 🌐 行业视角:AI Coding 的演进路径 💡 二、行业专家洞见:AI Coding 实战经验分享 🎤 1. 韦体东:深信服研发主管、开源AI编程产品负责人 🎤 2. 王路敏:极猫科技创始人、技术负责人 🎤 3. 鲲志:脉脉AI创作者、阿里云专家博主 🛠️ 三、工具实战:如何让 AI 真正"提效"? 1️⃣ 场景聚焦:让 AI

By Ne0inhk
工作流 x 深度学习:揭秘蓝耘元生代如何用 ComfyUI 玩转 AI 开发

工作流 x 深度学习:揭秘蓝耘元生代如何用 ComfyUI 玩转 AI 开发

目录 一、从 “代码噩梦” 到 “积木游戏”:我与工作流的初次碰撞 二、深度学习:复杂而迷人的 “数字迷宫” (一)深度学习的神秘面纱 (二)深度学习的发展历程 (三)深度学习面临的挑战 三、ComfyUI到底是啥?它能吃吗? 四、深度学习的 “脚手架”:为什么需要工作流? (一)传统开发的 “三座大山” (二)ComfyUI 工作流如何 “拆墙”? 五、蓝耘元生代:给工作流插上 “算力翅膀” (一)当 ComfyUI 遇见弹性算力 (二)工作流与模型训练的 “化学反应” 六、手把手搭建第一个工作流 (一) 基础图像生成工作流 (二) 添加ControlNet控制 七、自定义节点开发

By Ne0inhk