糖逗 发表于 2021-5-2 14:04:39

C++刷LeetCode(554. 砖墙)【map】

题目描述:
你的面前有一堵矩形的、由 n 行砖块组成的砖墙。这些砖块高度相同(也就是一个单位高)但是宽度不同。每一行砖块的宽度之和应该相等。

你现在要画一条 自顶向下 的、穿过 最少 砖块的垂线。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。

给你一个二维数组 wall ,该数组包含这堵墙的相关信息。其中,wall 是一个代表从左至右每块砖的宽度的数组。你需要找出怎样画才能使这条线 穿过的砖块数量最少 ,并且返回 穿过的砖块数量 。

 

示例 1:


输入:wall = [,,,,,]
输出:2
示例 2:

输入:wall = [,,]
输出:3
 
提示:

n == wall.length
1 <= n <= 104
1 <= wall.length <= 104
1 <= sum(wall.length) <= 2 * 104
对于每一行 i ,sum(wall) 应当是相同的
1 <= wall <= 231 - 1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/brick-wall
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。



class Solution {
public:
    int leastBricks(vector<vector<int>>& wall) {
      //map
      map<int, int>store;
      int len = wall.size();
      int temp = -1;
      for(int i = 0; i < len; i++){
            for(int j = 0; j < wall.size(); j++){
                if(j >= 1){
                  wall += wall;
                }
                if(j < wall.size()-1){
                  store]++;
                  temp = max(temp, store]);
                }
            }
      }
      if(temp == -1)return len;
      return len - temp;
    }
};

糖逗 发表于 2021-5-2 14:05:10

{:10_312:}
页: [1]
查看完整版本: C++刷LeetCode(554. 砖墙)【map】