题解
比较后输出最大值
1 条题解
-
0
解题思路
题目要求从三个数 a、b、c 里找出最大的一个并输出。
思路:
- 先假设 a 是最大的,把它记到 mx 里
- 用 b 和 mx 比,如果 b 更大,就把 mx 更新成 b
- 再用 c 和 mx 比,如果 c 更大,就把 mx 更新成 c
- 最后 mx 就是三个数里最大的
这种方法叫打擂台:先找一个选手当擂主,后面的选手一个个来挑战,赢的当新擂主。
为什么能这么做? 因为最大值就是比所有数都大的那个,每比一个数就更新一次,比完所有数后剩下的就是最大的。
参考代码
#include <iostream> using namespace std; int main() { int a, b, c; cin >> a >> b >> c; int mx = a; // 先假设 a 最大 if (b > mx) mx = b; // b 更大就更新 if (c > mx) mx = c; // c 更大就更新 cout << mx << endl; return 0; }复杂度分析
- 时间复杂度:O(1),只比较两次
- 空间复杂度:O(1)
- 1