leetcode筆記系列 42 接雨水

2022-09-11 04:24:14 字數 432 閱讀 8049

給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。

解題思路是,找到所有柱子中最高的(記為max),然後從兩邊,分別向最高的柱子靠攏。遍歷的過程中,需要記錄當前除max外最高的柱子(記為root)。max和root之間的空間,減掉這之間的柱子高度,即為所能接雨水的數量。整個演算法的時間複雜度為o(n)。

**如下:

public int trap(int height)

}int area = 0, root = height[0];

for (int i = 0; i < maxind; ++i) else

}root = height[n - 1];

for (int i = n - 1; i > maxind; --i) else

}return area;

}

LeetCode題解 42 接雨水

給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。上面是由陣列 0,1,0,2,1,0,1,3,2,1,2,1 表示的高度圖,在這種情況下,可以接 6 個單位的雨水 藍色部分表示雨水 感謝 marcos 貢獻此圖。示例 輸入 0,1,0,2,1,0,1...

LeetCode日記 42 接雨水

接雨水 給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。上面是由陣列 0,1,0,2,1,0,1,3,2,1,2,1 表示的高度圖,在這種情況下,可以接 6 個單位的雨水 藍色部分表示雨水 感謝 marcos 貢獻此圖。示例 class soluti...

leetcode題 42 接雨水(困難)

給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。上面是由陣列 0,1,0,2,1,0,1,3,2,1,2,1 表示的高度圖,在這種情況下,可以接 6 個單位的雨水 藍色部分表示雨水 感謝 marcos 貢獻此圖。示例 輸入 0,1,0,2,1,0,1...