你的面前有一堵矩形的、由 n 行磚塊組成的磚牆。這些磚塊高度相同(也就是乙個單位高)但是寬度不同。每一行磚塊的寬度之和相等。
你現在要畫一條 自頂向下 的、穿過 最少 磚塊的垂線。如果你畫的線只是從磚塊的邊緣經過,就不算穿過這塊磚。你不能沿著牆的兩個垂直邊緣之一畫線,這樣顯然是沒有穿過一塊磚的。
給你乙個二維陣列 wall ,該陣列包含這堵牆的相關資訊。其中,wall[i] 是乙個代表從左至右每塊磚的寬度的陣列。
你需要找出怎樣畫才能使這條線 穿過的磚塊數量最少 ,並且返回 穿過的磚塊數量 。
關鍵點:由於磚牆是一面矩形,所以對於任意一條垂線,其穿過的磚塊數量加上從邊緣經過的磚塊數量之和是乙個定值,即磚牆的高度。
/** * @param wall
* @return */
var leastbricks = function
(wall)
}let max = 0;
for(let [i,c] of count.entries())
return wall.length-max;
}let wall = [[1,2,2,1],[3,1,2],[1,3,2],[2,4],[3,1,2],[1,3,1,1]]
console.log(wall, leastbricks(wall));
wall = [[1],[1],[1]]
console.log(wall, leastbricks(wall));
示例 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
n == wall.length
1 <= n <= 104
1 <= wall[i].length <= 104
1 <= sum(wall[i].length) <= 2 * 104
對於每一行 i ,sum(wall[i]) 是相同的
1 <= wall[i][j] <= 231 - 1
LeetCode刷題(中等程度) 554 磚牆
你的面前有一堵矩形的 由多行磚塊組成的磚牆。這些磚塊高度相同但是寬度不同。你現在要畫一條自頂向下的 穿過最少磚塊的垂線。磚牆由行的列表表示。每一行都是乙個代表從左至右每塊磚的寬度的整數列表。如果你畫的線只是從磚塊的邊緣經過,就不算穿過這塊磚。你需要找出怎樣畫才能使這條線穿過的磚塊數量最少,並且返回穿...
雜湊表 B004 LC 磚牆(統計縫隙的磚塊數)
一 problem 你的面前有一堵矩形的 由多行磚塊組成的磚牆。這些磚塊高度相同但是寬度不同。你現在要畫一條自頂向下的 穿過最少磚塊的垂線。磚牆由行的列表表示。每一行都是乙個代表從左至右每塊磚的寬度的整數列表。如果你畫的線只是從磚塊的邊緣經過,就不算穿過這塊磚。你需要找出怎樣畫才能使這條線穿過的磚塊...
雜湊表 雜湊表
一 定義 雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。雜湊表的做法其實很簡單,就是把key通過乙個固定的演算法函式...