这道题要求的是穿过的最少砖块数量,用哈希表来记录间隙。unordered_map可以直接用key来移除。
记录每行出现间隙的次数,比如1,2这样的,那么间隙就是1的地方出现1次,3的地方出现1次
然后遍历哈希表,我们让行-出现间隙最多的次数就是穿过最少的砖块。
class Solution {
public:
int leastBricks(vector<vector<int>>& wall) {
//记录每行出现间隙的次数,比如1,2这样的,那么间隙就是1的地方出现1次,3的地方出现1次
//我们让行-出现间隙最多的次数就是穿过最少的砖块
int n = wall.size();
unordered_map<int,int> ma;
for(int i = 0; i < n; ++i){
int sum = 0;
for(int x : wall[i]){
sum += x;
ma[sum]++;
}
ma.erase(sum);//可以直接通过key来移除吗
}
int res = n;
for(auto p : ma){
res = min(res,n-p.second);
}
return res;
}
};