TB椰程 TypeBuddy 打字搭子

爱与愁的心痛

洛谷·深入浅出 · 代码 · cpp · 难度 3/5 · 共 504 字

求连续 m 个刺痛值之和的最小值

  • 洛谷
  • 练习

正文

// 原题:https://oj.yecheng.tv/p/1405
// 题意:n 个刺痛值,求连续 m 个的和的最小值。
// 思路:滑动窗口,维护当前窗口和,逐位右移并更新最小和。
// 复杂度:O(n)。
// 易错点:窗口长度恰为 m;初值取第一个窗口的和。
#include <iostream>
using namespace std;
int main(){
    int n, m, a[3005], sum = 0, mn = 2000000000;
    cin >> n >> m;
    for(int i = 0; i < n; i++) cin >> a[i];
    for(int i = 0; i < m; i++) sum += a[i];
    mn = sum;
    for(int i = m; i < n; i++){
        sum = sum - a[i - m] + a[i];
        if(sum < mn) mn = sum;
    }
    cout << mn << endl;
    return 0;
}

洛谷·深入浅出的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK