leetcode-华为专题-554. 砖墙
class Solution { public: int leastBricks(vector<vector<int>>& wall) { unordered_map<int,int> un_map; if(wall.size()==0) return 0; for(int i = 0; i < wall.size(); i++){ int sum = 0; int n = wall[i].size(); for(int j = 0; j < n-1; j++){ // n-1 取出墙边 sum = sum + wall[i][j]; un_map[sum]++; // hash表,判断那些在同一条直线上 } } int maxval = 0; for(auto it = un_map.begin(); it!=un_map.end(); it++){ //cout<<"it->second:"<<" "<<it->first<<" "<<it->second<<endl; maxval = max(it->second, maxval); // 找出在同一条直线上最多的个数 } return wall.size()-maxval; // 墙高减去maxval即为结果。 } };