Leetcode練習(Python):數組類:第42題:給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之后能接多少雨水。


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

 

 思路:與第11題的思路很像

程序:

class Solution:
    def trap(self, height: List[int]) -> int:
        result = 0
        index_left = 0
        index_right = len(height) - 1
        left_max = 0
        right_max = 0

        while index_left <= index_right:
            if height[index_left] <= height[index_right]:
                if height[index_left] < left_max:
                    result = result + (left_max - height[index_left])
                else:
                    left_max = height[index_left]
                index_left += 1
            else:
                if height[index_right] < right_max:
                    result = result + (right_max - height[index_right])
                else:
                    right_max = height[index_right]
                index_right -= 1
        return result


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 Leetcode練習(Python):第66題:給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一。 最高位數字存放在數組的首位, 數組中每個元素只存儲單個數字。 你可以假設除了整數 0 之外,這個整數不會以零開頭。 Leetcode練習(Python):字符串類:第43題:字符串相乘:給定兩個以字符串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字符串形式。 Leetcode練習(Python):數組類:第45題:給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 你的目標是使用最少的跳躍次數到達數組的最后一個位置。 Leetcode練習(Python):第415題:字符串相加:給定兩個字符串形式的非負整數 num1 和num2 ,計算它們的和。 Leetcode練習(Python):數組類:第209題:給定一個含有 n 個正整數的數組和一個正整數 s ,找出該數組中滿足其和 ≥ s 的長度最小的連續子數組。如果不存在符合條件的連續子數組,返回 0。 給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一 Leetcode練習(Python):回溯算法類:第46題:全排列:給定一個 沒有重復 數字的序列,返回其所有可能的全排列。 Leetcode練習(Python):回溯算法類:第47題:全排列 II:給定一個可包含重復數字的序列,返回所有不重復的全排列。 Leetcode練習(Python):數組類:第78題:給定一組不含重復元素的整數數組 nums,返回該數組所有可能的子集(冪集)。 說明:解集不能包含重復的子集。 Leetcode練習(Python):哈希表類:第49題:字母異位詞分組:給定一個字符串數組,將字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字符串。
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM