一句话理解
数组统计:扫一遍,按题目累加计数或分类。
为什么要学
出现次数、和、平均值、满足条件的个数,都是统计。
讲解
常见:cnt[a[i]]++ 记出现次数(a[i] 必须不太大);if (a[i] % 2 == 0) even++;。
先想清楚统计的是“值”还是“位置”。需要再开一个桶数组时,注意值域。
能一遍完成就不要套两层循环。
例子
int a[6] = {0, 1, 2, 2, 3, 2};
int cnt = 0;
for (int i = 1; i <= 5; i++)
if (a[i] == 2) cnt++;
cout << cnt;
输出:
3
值为 2 的出现了三次。
常见错误
- 值域 1e9 还开 cnt[a[i]]。
- 统计时把下标和值加混。