554 磚牆(雜湊表)

2022-09-14 19:36:16 字數 1099 閱讀 3583

你的面前有一堵矩形的、由 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通過乙個固定的演算法函式...