一句话理解
数组最大值:先拿一个候选,再和每个元素比。
为什么要学
统计类题目的基本功。
讲解
把 ans 初始化成 a[1](或 a[0]),不要初始化成 0——可能全是负数。
然后 if (a[i] > ans) ans = a[i];。也可以用 max(ans, a[i])。
同时记下最大值的位置时,注意“相等要不要更新”。题目若要最左边,相等就不更新。
例子
int a[5] = {0, 3, 9, 2, 9};
int ans = a[1];
for (int i = 2; i <= 4; i++)
if (a[i] > ans) ans = a[i];
cout << ans;
输出:
9
从 3 出发,被 9 更新,后面 2 和 9 都不更大,最大值 9。
常见错误
- ans=0 但数组全负。
- 从 i=1 开始却把 a[1] 跳过了。