新闻详情

新闻详情

首页 / 资讯中心 / 详情

【C++算法打怪专栏】连续子数组最小和问题:滑动窗口与暴力枚举分析

发布时间:2026/11/14 1:45:47来源:尧图网络
【C++算法打怪专栏】连续子数组最小和问题:滑动窗口与暴力枚举分析
【C算法打怪专栏】连续子数组最小和问题滑动窗口与暴力枚举分析在刷题过程中求“连续m mm个元素的区间和”是一个极其经典的问题。本文将以洛谷 P1614 爱与愁的心痛 为例讲解暴力枚举与滑动窗口 (O ( n ) O(n)O(n)) 两种解法。一、题目描述给定n nn个整数和一个整数m mm求连续m mm个数的和的最小值。输入第一行为n , m n, mn,m接下来的n nn行每行一个整数a i a_iai​。输出连续m mm个数的和的最小值。数据范围0 ≤ m ≤ n ≤ 3000 0 \le m \le n \le 30000≤m≤n≤30001 ≤ a i ≤ 100 1 \le a_i \le 1001≤ai​≤100。二、方法一双重循环暴力枚举最直观的做法是枚举所有可能的起始位置i ii然后计算从i ii开始的连续m mm个数的和最后维护一个最小值。C 代码实现#includebits/stdc.husingnamespacestd;intmain(){// 提高 IO 效率ios::sync_with_stdio(false);cin.tie(nullptr);intn,m;if(!(cinnm))return0;vectorinta(n);for(inti0;in;i){cina[i];}// 特殊情况判断if(m0){cout0\n;return0;}intmin_aINT_MAX;// 外层循环枚举起点注意边界为 n - mfor(inti0;in-m;i){longlongans0;for(intji;jim;j){ansa[j];}if(ansmin_a){min_aans;}}coutmin_a\n;return0;}复杂度分析时间复杂度O ( n × m ) O(n \times m)O(n×m)。在n , m ≤ 3000 n, m \le 3000n,m≤3000时计算量约9 × 10 6 9 \times 10^69×106可以在1.0 s 1.0\text{s}1.0s内轻松通过。空间复杂度O ( n ) O(n)O(n)用于存储原数组。三、方法二滑动窗口最优解当数据规模扩大到n , m ≤ 10 5 n, m \le 10^5n,m≤105时暴力做法会超时TLE。此时可以使用滑动窗口思想先计算前m mm个元素的和current_sum。窗口向右移动一步时加上新移入的元素减去移出的元素即可在O ( 1 ) O(1)O(1)时间内得到新窗口的和。C 代码实现#includeiostream#includevector#includeclimits#includealgorithmusingnamespacestd;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);intn,m;if(!(cinnm))return0;vectorinta(n);for(inti0;in;i){cina[i];}if(m0){cout0\n;return0;}// 1. 初始化第一个窗口的和intcurrent_sum0;for(inti0;im;i){current_suma[i];}intmin_acurrent_sum;// 2. 滑动窗口更新最小值for(intim;in;i){current_suma[i]-a[i-m];// 滑入 a[i]滑出 a[i-m]min_amin(min_a,current_sum);}coutmin_a\n;return0;}复杂度分析时间复杂度O ( n ) O(n)O(n)整个数组只需遍历一次。空间复杂度O ( n ) O(n)O(n)。四、坑点与总结边界条件控制外层循环终止条件是i n - m写成i n会导致内层循环越界访问造成RE。特殊输入当m 0 m 0m0时连续0 00个数的和为0 00需要提前退出。初始化维护最小值的变量应初始化为足够大的数如INT_MAX。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/13 0:43:49

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/13 10:09:00

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/13 13:31:48

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/13 16:11:45

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/13 0:02:27

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉