- 一个伪装的很好的哈希表统计频率的题目
- 使用到了前缀数组的思想
class Solution {
public:
int leastBricks(vector<vector<int>>& wall) {
unordered_map<int, int> m;
int n = wall.size();
// 统计每个边缘的频率,当然要用到前缀和来计算边缘
for (int i = 0; i < n; i++) {
int sum = 0;
for (auto num: wall[i]) {
sum += num;
m[sum]++;
}
m.erase(sum);
}
// 找到最大的边缘频率,然后用数组的行大小减掉这个值就可以了
int tmp_max = 0;
for (auto &[num, cnt]: m) {
tmp_max = max(cnt, tmp_max);
}
return n - tmp_max;
}
};