实战:一道完整的题
约 10 分钟
光说六步没用,挑一道题真刀真枪走一遍才记得住,就像学做菜,光看菜谱不行,得亲手备料下锅。我们来做这道:读入 n,再读入 n 个整数,输出其中最大的一个。
按六步走:读题——找最大值;看范围——n 不超过 1000,数在 int 范围内;想思路——边读边比;估复杂度——扫一遍是 O(n),稳;写代码;测边界——n 等于 1、全是负数。
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int mx;
cin >> mx; // 先把第一个数当作最大
for (int i = 1; i < n; i++) {
int x; cin >> x;
if (x > mx) mx = x;
}
cout << mx << endl;
return 0;
}
最容易掉的坑:把 mx 初始化成 0。要是所有数都是负的,答案就错成 0 了。先读第一个数当最大,才最保险。
小纸条
挑一道题走完六步。
登录 后可看答案