554. Brick Wall (map)

来源:互联网 发布:sqlserver 并发数 编辑:程序博客网 时间:2024/06/04 23:27

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;    }};
原创粉丝点击