leetcode 554. 砖墙
你的面前有一堵矩形的、由 n 行砖块组成的砖墙。这些砖块高度相同(也就是一个单位高)但是宽度不同。每一行砖块的宽度之和应该相等。
你现在要画一条 自顶向下 的、穿过 最少 砖块的垂线。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。
给你一个二维数组 wall ,该数组包含这堵墙的相关信息。其中,wall[i] 是一个代表从左至右每块砖的宽度的数组。你需要找出怎样画才能使这条线 穿过的砖块数量最少 ,并且返回 穿过的砖块数量 。
示例 1:
输入:wall = [[1,2,2,1],[3,1,2],[1,3,2],[2,4],[3,1,2],[1,3,1,1]]
输出:2
示例 2:
输入:wall = [[1],[1],[1]]
输出:3
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/brick-wall
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
因为输入是一个二维数组,因此我们可以将一维数组看成一行砖,例如示例1
输入:wall = [[1,2,2,1],[3,1,2],[1,3,2],[2,4],[3,1,2],[1,3,1,1]]
输出:2
第一行是[1,2,2,1],我们从这里分析,因为题目要求 穿过的砖块数量最少,所以对于每一行,我们需要关注的是砖块之间的空隙去进行插入,这样就能避免穿过砖块,因此我们需要记录每一行砖块空隙的位置
例如:
[1,2,2,1] 空隙坐标为 1,3,5(左端和右端不算空隙)
对于每一层我们使用map记录不同空隙坐标以及对应出现的次数,出现次数最多的空隙坐标代表了有多层砖块都在这个位置出现空隙,从这里穿过的空隙最小。
代码
func leastBricks(wall [][]int) int {m2 := make(map[int]int)n,res:=len(wall),0for i := 0; i < n; i++ {pre:=0for j := 0; j < len(wall[i])-1; j++ {pre+=wall[i][j]i2,ok := m2[pre]if ok{m2[pre]=i2+1}else {m2[pre]=1}if m2[pre]>res{res=m2[pre]}}}return n-res
}
leetcode 554. 砖墙相关推荐
- LeetCode 554 砖墙 题解
LeetCode 554 砖墙 题解 你的面前有一堵矩形的.由 n 行砖块组成的砖墙.这些砖块高度相同(也就是一个单位高)但是宽度不同.每一行砖块的宽度之和相等. 你现在要画一条 自顶向下 的.穿过 ...
- Leetcode 554. 砖墙 C++
Leetcode 554. 砖墙 题目 你的面前有一堵矩形的.由多行砖块组成的砖墙. 这些砖块高度相同但是宽度不同.你现在要画一条自顶向下的.穿过最少砖块的垂线. 砖墙由行的列表表示. 每一行都是一个 ...
- LeetCode 554. 砖墙(map计数)
1. 题目 你的面前有一堵方形的.由多行砖块组成的砖墙. 这些砖块高度相同但是宽度不同.你现在要画一条自顶向下的.穿过最少砖块的垂线. 砖墙由行的列表表示. 每一行都是一个代表从左至右每块砖的宽度的整 ...
- Leetcode 554.砖墙
砖墙 你的面前有一堵方形的.由多行砖块组成的砖墙. 这些砖块高度相同但是宽度不同.你现在要画一条自顶向下的.穿过最少砖块的垂线. 砖墙由行的列表表示. 每一行都是一个代表从左至右每块砖的宽度的整数列表 ...
- [leetcode] 554. 砖墙
class Solution {public:int leastBricks(vector<vector<int>>& wall) {unordered_map< ...
- LeetCode.554 砖墙
原题 https://leetcode-cn.com/problems/brick-wall/ 思路 哈希 题解 package cn.codemao.botmao.admin;import java ...
- LeetCode:砖墙【554】
LeetCode:砖墙[554] 题目描述 你的面前有一堵方形的.由多行砖块组成的砖墙. 这些砖块高度相同但是宽度不同.你现在要画一条自顶向下的.穿过最少砖块的垂线. 砖墙由行的列表表示. 每一行都是 ...
- LeetCode每日抑题 554. 砖墙
554. 砖墙 难度:中等 语言:java 题目内容 你的面前有一堵矩形的.由 n 行砖块组成的砖墙.这些砖块高度相同(也就是一个单位高)但是宽度不同.每一行砖块的宽度之和应该相等. 你现在要画一条 ...
- LeetCode 0554. 砖墙
[LetMeFly]554.砖墙 力扣题目链接:https://leetcode.cn/problems/brick-wall/ 你的面前有一堵矩形的.由 n 行砖块组成的砖墙.这些砖块高度相同(也就 ...
最新文章
- 实践重于理论——创建一个监控程序探测WCF的并发处理机制
- 地址栏射击游戏!对,你没看错,就是在地址栏上玩的游戏,有图有真相!
- iOS获取自1970年毫秒数使用OC和swift两种语法,返回字符串
- 持续集成之配置TeamCity
- vs中工具箱代表的意思_“日”除了代表太阳,其实还有这种意思,特别是出现在这些词语中的“日”...
- java对外sdk提供接口_Android SDK封装,对外提供接口
- 二叉搜索树,和红黑树,
- 微信端php 开发技术要求,PHP微信开发技术 - WebFalse文档托管平台
- 转 基于.NET平台的分层架构实战
- Oracle(plsql)数据导入导出
- wps里的茶色字体怎么设置_VRay茶色玻璃材质参数是什么,要怎么设置?
- Pr 音频效果参考(合集)
- 起点中文网字体反爬注意事项
- 什么是cc攻击以及个人网站遭到cc攻击的解决方法
- 【语音识别】基于VQ特定人孤立词语音识别附matlab代码
- linux输入法大小,推荐linux下的输入法--五笔+拼音
- 优化嵌入式Linux的启动时间的秘密
- 洛克菲勒给他儿子的信
- 抽象类和接口的比较(重点)
- 程序设计思维模测 - M4