优选算法——滑动窗口

优选算法——滑动窗口

优选算法——滑动窗口

1.长度最小的子数组

在这里插入图片描述

解题原理

在这里插入图片描述

📋 解题步骤

第一步:理解题意

  • 找一个连续子数组,使其和 ≥ target,且长度最小
  • 数组元素都是正整数(关键性质)
  • 无解返回 0

第二步:分析暴力解法

  • 枚举所有子数组:O(n²) 或 O(n³)
  • 对于 n = 10⁵ 会超时

第三步:寻找优化点

  • 正整数 → 窗口扩展时和单调递增
  • 可以用滑动窗口优化

第四步:设计滑动窗口

遍历右指针: 扩展窗口 从右边进窗口 判断: 如果 sum >= target: 更新最小长度 收缩窗口 从左边出窗口 

第五步:手动模拟

步骤leftright窗口sumresult
403[2,3,1,2]84
724[1,2,4]73
1045[4,3]72

第六步:编写代码

classSolution{public:intminSubArrayLen(int target, vector<int>& nums){int len=INT_MAX;int n=nums.size();int sum=0;for(int left=0,right=0;right<n;right++){ sum+=nums[right];//进窗口while(sum>=target)//判断{ len=min(len,right-left+1); sum-=nums[left++];}}return len==INT_MAX?0:len;}};

第七步:验证边界

  • 单元素、无解、总和不足等情况

第八步:复杂度

  • 时间:O(n)
  • 空间:O(1)

2. 无重复字符的最长子串

在这里插入图片描述

题目信息

  • 题目:LCR 016. 无重复字符的最长子串(与主站第3题相同)
  • 难度:中等
  • 标签:哈希表、字符串、滑动窗口

解法总结

方法时间复杂度空间复杂度
集合O(n)O(min(n, 128))
哈希表O(n)O(min(n, 128))
数组(推荐)O(n)O(1)

核心思路

滑动窗口法

  1. 用双指针维护一个无重复字符的窗口
  2. 用哈希表/数组记录每个字符最后出现的位置

遇到重复字符时,左指针直接跳到重复字符的下一个位置

在这里插入图片描述

代码示例(C++ 最优解)

classSolution{public:intlengthOfLongestSubstring(string s){int hash[128]={0};int ret=0;int n=s.size();for(int left=0,right=0;right<n;right++){ hash[s[right]]++;//进窗口while(hash[s[right]]>1)//判断{ hash[s[left++]]--;//出窗口} ret=max(ret,right-left+1);}return ret;}}; hash[s[left++]]--;//出窗口} ret=max(ret,right-left+1);}return ret;}};

Read more

【LLM基础】大模型的上游与下游:一篇文章讲清 AI 流水线的全貌

【LLM基础】大模型的上游与下游:一篇文章讲清 AI 流水线的全貌

你以为 ChatGPT 的核心是 Transformer?其实在模型开始训练之前,但在工程实践中,模型真正开始训练之前,80% 的成败已经被决定了。 一、背景:为什么需要区分"上游"和"下游"? 1.1 学大模型,别只盯着模型本身 很多人学大模型,第一反应是去看 Transformer 架构、注意力机制、RLHF 对齐。这些当然重要,但它们只是整条流水线中的 一个环节。 一个大模型从无到有、从训练到落地,涉及的环节远比"模型本身"多得多:数据从哪里来?怎么清洗?怎么分词?预训练之后怎么变成一个能聊天的产品? 1.2 一个类比:大模型就像一座工厂 如果把大模型比作一座工厂,那

By Ne0inhk
Seedance 2.0(即梦 2.0)深度解析:AI 视频进入「导演级」可控时代

Seedance 2.0(即梦 2.0)深度解析:AI 视频进入「导演级」可控时代

2026 年 2 月 12 日,字节跳动 Seed 实验室正式发布Seedance 2.0(即梦 2.0) 多模态音视频生成大模型。它以统一多模态联合架构为底座,在运动稳定性、角色一致性、多镜头叙事与音画同步上实现全面突破,成为当前国内最接近工业级生产的 AI 视频模型之一。 一、核心定位与行业地位 * 定位:全能型 AI 视频生成模型,支持文生视频、图生视频、视频续作、音频驱动、多模态混合生成 * 成绩:在权威榜单Video Arena中文生视频、图生视频双赛道登顶 * 输出规格:2K 电影级分辨率,最长支持15 秒高质量多镜头成片,支持视频平滑延长 二、四大核心能力(真正解决创作痛点) 1. 多模态全能参考:一次输入,全域控制

By Ne0inhk
人工智能:自然语言处理在医疗健康领域的应用与实战

人工智能:自然语言处理在医疗健康领域的应用与实战

人工智能:自然语言处理在医疗健康领域的应用与实战 学习目标 💡 理解自然语言处理(NLP)在医疗健康领域的应用场景和重要性 💡 掌握医疗健康领域NLP应用的核心技术(如电子病历分析、医学文本分类、疾病预测) 💡 学会使用前沿模型(如BERT、GPT-3)进行医疗健康文本分析 💡 理解医疗健康领域的特殊挑战(如医学术语、数据隐私、数据质量) 💡 通过实战项目,开发一个电子病历分析应用 重点内容 * 医疗健康领域NLP应用的主要场景 * 核心技术(电子病历分析、医学文本分类、疾病预测) * 前沿模型(BERT、GPT-3)在医疗健康领域的使用 * 医疗健康领域的特殊挑战 * 实战项目:电子病历分析应用开发 一、医疗健康领域NLP应用的主要场景 1.1 电子病历分析 1.1.1 电子病历分析的基本概念 电子病历分析是对电子病历文本进行分析和处理的过程。在医疗健康领域,电子病历分析的主要应用场景包括: * 病历结构化:将非结构化的电子病历文本转换为结构化数据 * 病历检索:检索相关的电子病历 * 病历质量评估:

By Ne0inhk
OpenClaw 实战:让 AI 拥有“眼睛“——摄像头访问完全指南

OpenClaw 实战:让 AI 拥有“眼睛“——摄像头访问完全指南

今天冒出个想法,想让openclaw能控制摄像头分析图片。原因是我有本书,网上还没有电子版,想让openclaw分析然后把重点内容讲给我听。 📖让运行在 WSL2 里的 OpenClaw AI 助手能够"看见"摄像头画面。 🚧 探索过程 第一阶段:OpenClaw Node 配对(失败)折腾了 3 小时+,最终因为 WSL2 网络隔离问题放弃。 我在wsl里安了openclaw,他说要控制摄像头,必须在windows上安装node.js,安装npm,折腾了好久,就是报错。结论就是windows和wsl就是隔离的。 具体过程: **安装 Node.js:** 最开始下载了绿色版 Node.js(v24.14.0),遇到了一系列问题: ```powershell # 绿色版 Node.js

By Ne0inhk