https://leetcode.com/problems/brick-wall/description/
题目:最少穿越几块砖
思路:
可以从图片中看出,如果能够同时go through说明每一层左边的和是相等的,图中go through的位置和为4,第2、3、5、6层的均满足,
而brick总共6层,于是最少穿过的brick为2层。
于是想到出现同一个和的个数越多,即满足穿过的brick越少。
用一个map来统计即可。
class Solution {
public:
int leastBricks(vector<vector<int>>& wall) {
map<int,int>m;
for(int x=0;x<wall.size();x++){
int sum=0;
for(int y=0;y<wall[x].size()-1;y++){
sum+=wall[x][y];
m[sum]++;
}
}
int max1=0;
map<int,int>::iterator it = m.begin();
while(it!=m.end()){
max1=max(it->second,max1);
it++;
}
return wall.size()-max1;
}
};