LeetCode Top 100 高頻算法題42. Trapping Rain Water

2021-03-02 菜鳥名企夢

哈嘍,大家好!由於公眾號做了改版,為了保證公眾號的文章可以準時推送到你手裡,大家記得點擊上方藍色」菜鳥名企夢「,將咱們的公眾號 加星標置頂 ,在此真誠的表示感謝~

今日推薦:
中國科技企業,研發投入TOP250排行榜!華為全球第三!!

LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題。小編和實驗室同學之前面試找工作,也只刷了劍指offer和這top 100算法題,在實際面試中也遇到了很多LeetCode上的原題。劍指offer算法最優解之前和大家分享了,LeetCode Top 100這100道算法題,每道題小編都刷了很多遍,並且總結了一種最適合面試時手撕算法的最優解法。後續每天和大家分享一道LeetCode top 100高頻算法題,以及小編總結的最優解法。

如果本專欄對你有幫助,幫忙點個讚~
如果沒什麼人看,後續可能不更新這專欄了,意義不大

LeetCode Top 100 高頻算法題系列的LeetCode算法題目就不幫大家翻譯了,程式設計師應該需要能看懂。LeetCode算法題有一個技巧:先看每道題的example部分情況看完example就能理解題目意思;如果看完example還有疑惑,可以再回過頭來看英文題目,這樣也可以節省一點時間~

Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it can trap after raining.

Input: height = [0,1,0,2,1,0,1,3,2,1,2,1]
Output: 6
Explanation: The above elevation map (black section) is represented by array [0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being trapped.

Input: height = [4,2,0,3,2,5]
Output: 9

3. Constraints(輸入的數據約束)

在LeetCode上本題屬於Hard難度,難點在於O(n)的複雜度。本題的解法比較討巧,參考了一個LeetCode熱門的思路:

instead of calculating area by height * width, we can think it in a cumulative way. In other words, sum water amount of each bin(width=1).Search from left to right and maintain a max height of left and right separately, which is like a one-side wall of partial container. Fix the higher one and flow water from the lower part. For example, if current height of left is lower, we fill water in the left bin. Until left meets right, we filled the whole container.

下面是根據上面思路寫的一個實現

public  int trap(int[] A){        int res=0;                int left=0;         int right=A.length-1;                int maxleft=0, maxright=0;        while(left<right){            if(A[left]<=A[right]){                if(A[left]>=maxleft)                    maxleft=A[left];                else                    res += maxleft-A[left];                                left++;            }else{                if(A[right]>=maxright)                    maxright = A[right];                else                     res += maxright-A[right];                                right--;            }    }        return res;    }

最後:由於公眾號做了改版,為了保證公眾號的文章可以準時推送到你手裡,大家記得將咱們的公眾號 加星標置頂 ,在此真誠的表示感謝~

長按,掃碼,關注

及時收看更多精彩內容

點擊」閱讀原文「:領取5T精品資料面試總結100+實戰項目

我知道你 「在看

相關焦點

  • LeetCode Top 100 高頻算法題 07:11. Container With Most Water
    LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題
  • LeetCode Top 100 高頻算法題 49. Group Anagrams
    由於公眾號做了改版,為了保證公眾號的文章可以準時推送到你手裡,大家記得點擊上方藍色」菜鳥名企夢「,將咱們的公眾號 加星標置頂 ,在此真誠的表示感謝~LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題。
  • LeetCode Top 100 高頻算法題 03:Longest Substring
    LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題。
  • LeetCode Top 100 高頻算法題 15. 3Sum
    LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題。
  • LeetCode Top 100 高頻算法題 02:Add Two Numbers
    近期公眾號沒怎麼更新,這周末再和大家聊聊近期在字節的工作~LeetCode Top 100這個專欄對小夥伴找工作非常有幫助,所以這個專欄一定會繼續下去
  • LeetCode Top 100 高頻算法題45. Jump Game II
    由於公眾號做了改版,為了保證公眾號的文章可以準時推送到你手裡,大家記得點擊上方藍色」菜鳥名企夢「,將咱們的公眾號 加星標置頂 ,在此真誠的表示感謝~LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題。
  • LeetCode Top 100 高頻算法題 53. Maximum Subarray
    由於公眾號做了改版,為了保證公眾號的文章可以準時推送到你手裡,大家記得點擊上方藍色」菜鳥名企夢「,將咱們的公眾號 加星標置頂 ,在此真誠的表示感謝~LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題。
  • LeetCode Top 100 高頻算法題 05:Longest Palindromic Substring
    LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題
  • LeetCode Top 100 高頻算法題 21. Merge Two Sorted Lists
    LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題
  • ​LeetCode刷題實戰42:接雨水
    算法的重要性,我就不多說了吧,想去大廠,就必須要經過基礎知識和業務邏輯面試+算法面試
  • LeetCode Top 100 高頻算法題 23. Merge k Sorted Lists
    高頻算法題,即LeetCode上最高頻的100道求職面試算法題。小編和實驗室同學之前面試找工作,也只刷了劍指offer和這top 100算法題,在實際面試中也遇到了很多LeetCode上的原題。劍指offer算法最優解之前和大家分享了,LeetCode Top 100這100道算法題,每道題小編都刷了很多遍,並且總結了一種最適合面試時手撕算法的最優解法。後續每天和大家分享一道LeetCode top 100高頻算法題,以及小編總結的最優解法。
  • LeetCode Top 100 高頻算法題 04:Median of Two Sorted Arrays
    LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題
  • 網際網路公司最常見的面試算法題大集合!
    今天新智元給大家推薦的這個GitHub項目,是Repo主自己刷題的心路歷程,並給出了解題參考。leetcode官方帳號在知乎上給出的一個《網際網路公司最常見的面試算法題有哪些?》的答案,原文地址: https://www.zhihu.com/question/24964987/answer/586425979一張網際網路公司面試中經常考察的問題類型總結的思維導圖,我們可以結合圖片中的信息分析一下。
  • LeetCode Top 100 高頻算法題 33. Search in Rotated Sorted Array
    高頻算法題,即LeetCode上最高頻的100道求職面試算法題。小編和實驗室同學之前面試找工作,也只刷了劍指offer和這top 100算法題,在實際面試中也遇到了很多LeetCode上的原題。劍指offer算法最優解之前和大家分享了,LeetCode Top 100這100道算法題,每道題小編都刷了很多遍,並且總結了一種最適合面試時手撕算法的最優解法。後續每天和大家分享一道LeetCode top 100高頻算法題,以及小編總結的最優解法。
  • 網際網路公司最常見的面試算法題大集合!
    今天給大家推薦的這個GitHub項目,是Repo主自己刷題的心路歷程,並給出了解題參考。leetcode官方帳號在知乎上給出的一個《網際網路公司最常見的面試算法題有哪些?》的答案,原文地址: https://www.zhihu.com/question/24964987/answer/586425979一張網際網路公司面試中經常考察的問題類型總結的思維導圖,我們可以結合圖片中的信息分析一下。
  • 網際網路公司最常見的面試算法題大集合
    今天新智元給大家推薦的這個GitHub項目,是Repo主自己刷題的心路歷程,並給出了解題參考。leetcode官方帳號在知乎上給出的一個《網際網路公司最常見的面試算法題有哪些?》的答案,原文地址: https://www.zhihu.com/question/24964987/answer/586425979一張網際網路公司面試中經常考察的問題類型總結的思維導圖,我們可以結合圖片中的信息分析一下。
  • LeetCode Top 100 高頻算法題 06: 10 Regular Expression Matching
    LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題
  • 網際網路大廠算法面試題集合,看完我跪了!
    >leetcode 題解,記錄自己的 leetcode 解題之路。本倉庫目前分為五個部分:第一個部分是 leetcode 經典題目的解析,包括思路,關鍵點和具體的代碼實現。第二部分是對於數據結構與算法的總結第三部分是 anki 卡片, 將 leetcode 題目按照一定的方式記錄在 anki 中,方便大家記憶。
  • 我說你在 LeetCode 練死勁不好用,他說你這也沒用,我說我這個有用.
    他們說,有一個說我在 LeetCode 刷題,都快刷吐了,你能不能教教我混元功法?幫助提高一下我的刷題姿勢。我說小朋友你要按照戰術來刷題,我說你在 LeetCode 練死勁不好用,他不服氣,他說你這也沒用,我說我這個有用。
  • 14種模式搞定面試算法編程題(PART I)
    為了更方便大家的交流溝通,我們建立了算法面試討論組,感興趣的小夥伴可以訂閱後臺回復"面試"加入好了不廢話啦,今天文章的主題就是分享14種解決面試算法編程題的思路(來自educative[1]),經過本人之前筆試面試經驗證明確實確實非常非常高頻,一定要十分熟悉。