C++代码:求解连续事件刺痛值和的最小值及优化方案
代码功能分析 这段C++代码的主要功能是从用户输入中读取两个整数 `n` 和 `m`,其中 `n` 表示事件的数量,`m` 表示要连续考虑的事件个数。接着读取 `n` 个事件的刺痛值,存储在数组 `a` 中。然后找出所有连续 `m` 个事件刺痛值之和的最小值并输出。 代码注释优化 ```cpp #include <iostream> using namespace std; int main() { // 定义两个整数 n 和 m,n 表示事件的总数,m 表示连续事件的个数 int n, m; // 从标准输入读取 n 和 m 的值 cin >> n >> m; // 定义一个数组 a 用于存储每个事件的刺痛值,数组大小为 3005 int a[3005]; // 循环读取每个事件的刺痛值并存储到数组 a 中 for (int i = 0; i < n; i++) { cin >> a[i]; } // 初始化一个变量 sum 用于存储连续 m 个事件刺痛值的和 int sum = 0; // 计算前 m 个事件刺痛值的和 for (int i = 0; i < m; i++) { sum += a[i]; } // 将前 m 个事件刺痛值的和作为初始的最小值 int minSum = sum; // 从第 m 个事件开始遍历,找出所有连续 m 个事件刺痛值和的最小值 for (int i = m; i < n; i++) { // 通过减去最前面的事件刺痛值,加上当前事件的刺痛值,得到新的连续 m 个事件刺痛值的和 sum = sum - a[i - m] + a[i]; // 如果新的和比当前最小值小,则更新最小值 if (sum < minSum) { minSum = sum; } } // 输出连续 m 个事件刺痛值和的最小值 cout << minSum << endl; return 0; } ``` 复杂度分析 - 时间复杂度:$O(n)$,因为只需要遍历一次数组。 - 空间复杂度:$O(n)$,主要用于存储事件的刺痛值。 可能的改进 可以将数组 `a` 替换为动态数组(如 `std::vector`),这样可以避免固定大小数组可能带来的空间浪费。以下是改进后的代码: ```cpp #include <iostream> #include <vector> using namespace std; int main() { int n, m; cin >> n >> m; // 使用 vector 动态存储事件的刺痛值 vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } int sum = 0; for (int i = 0; i < m; i++) { sum += a[i]; } int minSum = sum; for (int i = m; i < n; i++) { sum = sum - a[i - m] + a[i]; if (sum < minSum) { minSum = sum; } } cout << minSum << endl; return 0; } ``` 这样代码的空间使用更加灵活,适应不同的输入规模。 ######[AI问答 | 805点数解答 | 2025-11-24 19:54:06]
- 深入解析洛谷打卡系统:规则揭秘与代码实现(字节豆包 | 316点数解答 | 2025-11-16 19:45:59)104
- 工程师必备:十大APP性能优化方案大揭秘(百度文心 | 300点数解答 | 2023-11-09 18:31:04)331
- 含不规则缺陷原材料的最优切割方案建模与损失率、利用率计算(DeepSeek | 2367点数解答 | 2025-05-10 23:47:30)262
- 手把手教你实现完整品牌列表案例:含 HTML、CSS 与 JS 代码(阿里通义 | 796点数解答 | 2024-11-18 20:40:15)289
- 解析React 15与Vue 2:从O(n^3)到O(n),Diff算法时间复杂度计算及性能对比 (阿里通义 | 379点数解答 | 2023-11-09 01:49:19)336
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)245
- 精准优化:明确需求,开启高效提升之旅! (字节豆包 | 52点数解答 | 2026-02-09 16:44:46)38
- 代码再升级:优化版“获取dump”代码,多机制保障数据读取与保存(字节豆包 | 734点数解答 | 2026-02-10 01:23:31)68
- 代码深度优化:全面检查异常、灵活读取内存,提升可读性与可维护性(字节豆包 | 959点数解答 | 2026-02-10 01:24:14)35
- C++ 实现:合并 k 个有序数组并求所有数的中位数(附代码及复杂度分析) (阿里通义 | 203点数解答 | 2023-11-09 00:50:21)222
- 2023 - 2024 年中国制造业与非制造业 PMI 数据深度剖析:为政策与决策提供参考 (讯飞星火 | 54点数解答 | 2024-12-17 09:25:02)135
- 深挖2023 - 2024年中国制造业与非制造业PMI数据:多元统计剖析经济运行特点 (讯飞星火 | 235点数解答 | 2024-12-17 09:25:13)121