哈嘍,大家好!由於公眾號做了改版,為了保證公眾號的文章可以準時推送到你手裡,大家記得點擊上方藍色」菜鳥名企夢「,將咱們的公眾號 加星標置頂 ,在此真誠的表示感謝~
今日推薦:
中國科技企業,研發投入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熱門的思路:
下面是根據上面思路寫的一個實現
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+實戰項目
我知道你 「在看」