CodeACM
刷算法题入门

ACM 模式刷题指南

ACM 模式要求程序从标准输入读取数据,并将答案写到标准输出。与只填写函数的模式相比,你需要自己处理输入、调用算法并输出结果。

一题的完整流程

  1. 先看清输入有几行、每行是什么数据,确认数组长度和边界条件。
  2. 把计算逻辑与输入输出分开:先写核心函数,再在主函数中读入、调用和打印。
  3. 用题目样例运行程序,再自己添加空边界、重复值和极值用例。
  4. 提交后根据判题结果检查协议、复杂度与边界,不只看算法思路是否正确。

标准输入输出示例

假设第一行是整数 n,第二行是 n 个整数,要求输出它们的和。C++ 程序可以这样组织:

#include <bits/stdc++.h>
using namespace std;

long long sumArray(const vector<int>& nums) {
    long long sum = 0;
    for (int value : nums) sum += value;
    return sum;
}

int main() {
    int n;
    cin >> n;
    vector<int> nums(n);
    for (int& value : nums) cin >> value;
    cout << sumArray(nums) << '\n';
}

读入方式必须以每道题自己的输入描述为准。运行结果只输出题目要求的答案,不要额外打印提示语。

按知识点练习

初学者可以从哈希、双指针和数组开始,再练习滑动窗口、二叉树、图论与动态规划。HOT 100 题单按这些知识点组织,支持逐题练习。

两数之和字母异位词分组移动零三数之和接雨水最大子数组和爬楼梯岛屿数量

查看完整 HOT 100 题单