99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網易首頁 > 網易號 > 正文 申請入駐

各互聯網大廠月薪分布圖。。。

0
分享至

專欄:50多種數據結構徹底征服

專欄:50多種經典圖論算法全部掌握

最近在脈脈上看到一張圖片,列舉了互聯網大廠薪資的分布情況,整體來看,多數企業員工薪資集中在 20 - 50K 的區間。其中貝殼在 30 - 50K 薪資段占比最高,為 72.1% ;區間50K以上的,字節和拼多多占比最多,都是5.4%,不過我覺得這種統計比較保守了,應該沒有算上加班工資,否則只會更高。


--------------下面是今天的算法題--------------

來看下今天的算法題,這題是LeetCode的第42題:接雨水。

問題描述

來源:LeetCode第42題

難度:困難

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

示例1:



輸入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 輸出:6 解釋:上面是由數組 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度圖,在這種情況下,可以接 6 個單位的雨水(藍色部分表示雨水)。

示例2:


輸入:height = [4,2,0,3,2,5] 輸出:9

  • n == height.length

  • 1 <= n <= 2 * 1^04

  • 0 <= height[i] <= 10^5

問題分析

關于接雨水問題我們前面都講過,有興趣的可以先看下:

這里再來講一遍,不過今天的解決方式和之前的不一樣,今天使用的是 單調棧 來解決。

如果要計算某個位置是否能接雨水,需要找到這個位置左邊和右邊有沒有比他高的柱子,如果有,那么該位置肯定是能接的。所以我們可以使用一個單調棧,從 棧頂到棧底是單調遞增的 。

遍歷整個數組,如果數組中的某個元素比棧頂元素m大,說明棧頂元素m遇到了右邊比他大的值,這個時候棧頂元素m出棧,出棧之后如果棧不為空,那么新的棧頂元素就是左邊比他大的值,既然找到左邊和右邊都比他大的值,就可以計算位置m所能容納的水了。

注意這里計算某個位置所容納的水量不是最終的水量,如下圖中,c 位置最終容納的水是 2 ,但我們計算的時候 c 的左邊和右邊比他大的分別是 b 和 d ,他們的最小高度是 1 ,所以容納的水也是 1 。

當計算 d 的時候,左右兩邊比他大(相等也可以)的是 b 和 e ,因為 d 和 b 的高度一樣,所以計算容納水量為 0 。計算 b 的時候,他的左右兩邊比他大的分別是 a 和 e ,寬度是 3 ,高度是 1 ,容納的水量是 3 。


JAVA:

public int trap(int[] height) {     int water = 0;// 容納的水量     // 單調棧,存放的是柱子的下標,從棧頂到棧底是遞增的。     Stack
         
         
  stk =  new Stack<>();      for ( int i =  0; i < height.length; i++) {          // 如果棧不為空,并且當前元素比棧頂元素大          while (!stk.isEmpty() && height[i] > height[stk.peek()]) {              int index = stk.pop(); // 棧頂元素出棧。              // 因為棧從頂到底是遞增的,此時如果棧不為空,說明在數組中index左邊還有比他高的柱子。              if (!stk.isEmpty()) {                  int left = stk.peek(); // 左邊界                  int w = i - left -  1; // 寬度                  int h = Math.min(height[left], height[i]) - height[index];                 water += w * h; // 存數量累加             }         }         stk.push(i);     }      return water; }

C++:

public:     int trap(vector

  &height) {         int water = 0;// 容納的水量         // 單調棧,存放的是柱子的下標,從棧頂到棧底是遞增的。         stack

  stk;         for (int i = 0; i < height.size(); i++) {             // 如果棧不為空,并且當前元素比棧頂元素大             while (!stk.empty() && height[i] > height[stk.top()]) {                 int index = stk.top();                 stk.pop();// 棧頂元素出棧。                 // 因為棧從頂到底是遞增的,此時如果棧不為空,說明在數組中index左邊還有比他高的柱子。                 if (!stk.empty()) {                     int left = stk.top();// 左邊界                     int w = i - left - 1;// 寬度                     int h = min(height[left], height[i]) - height[index];                     water += w * h;// 存數量累加                 }             }             stk.push(i);         }         return water;     }


C:

#define min(a, b) (((a) < (b)) ? (a) : (b)) int trap(int *height, int heightSize) {     int water = 0;// 容納的水量     // 單調棧,存放的是柱子的下標,從棧頂到棧底是遞增的。     int *stk = malloc(20000 * sizeof(int));     int top = 0;// 棧頂     for (int i = 0; i < heightSize; i++) {         // 如果棧不為空,并且當前元素比棧頂元素大         while (top != 0 && height[i] > height[stk[top - 1]]) {             int index = stk[--top];// 棧頂元素出棧。             // 因為棧從頂到底是遞增的,此時如果棧不為空,說明在數組中index左邊還有比他高的柱子。             if (top != 0) {                 int left = stk[top - 1];// 左邊界                 int w = i - left - 1;// 寬度                 int h = min(height[left], height[i]) - height[index];                 water += w * h;// 存數量累加             }         }         stk[top++] = i;     }     return water; }

Python:

def trap(self, height: List[int]) -> int:     water = 0  # 容納的水量     # 單調棧,存放的是柱子的下標,從棧頂到棧底是遞增的。     stk = []     for i, num in enumerate(height):         # 如果棧不為空,并且當前元素比棧頂元素大         while stk and num > height[stk[-1]]:             index = stk.pop()  # 棧頂元素出棧。             # 因為棧從頂到底是遞增的,此時如果棧不為空,說明在數組中index左邊還有比他高的柱子。             if stk:                 left = stk[-1]  # 左邊界                 w = i - left - 1  # 寬度                 h = min(height[left], num) - height[index]                 water += w * h  # 存數量累加         stk.append(i)     return water

筆者簡介

博哥,真名:王一博,畢業十多年, 作者,專注于 數據結構和算法 的講解,在全球30多個算法網站中累計做題2000多道,在公眾號中寫算法題解800多題,對算法題有自己獨特的解題思路和解題技巧,喜歡的可以給個關注,也可以 下載我整理的1000多頁的PDF算法文檔 。

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
驚爆!普京換車,全球震動!

驚爆!普京換車,全球震動!

小小小白看世界
2025-05-11 08:59:12
83 架戰機被擊落,日媒集體失聲,專家:日本40多架陣風或成廢鐵

83 架戰機被擊落,日媒集體失聲,專家:日本40多架陣風或成廢鐵

一個有靈魂的作者
2025-05-10 14:03:20
2-1!勇士罰掉2人!18年未見這場面??!

2-1!勇士罰掉2人!18年未見這場面??!

柚子說球
2025-05-11 12:22:14
瑞典網友在發出拷問:為什么北歐五國,只有瑞典不能免簽去中國

瑞典網友在發出拷問:為什么北歐五國,只有瑞典不能免簽去中國

我不叫阿哏
2025-05-04 07:51:18
定了!烏克蘭盟國決定成立關于俄羅斯侵略戰爭的特別法庭

定了!烏克蘭盟國決定成立關于俄羅斯侵略戰爭的特別法庭

一種觀點
2025-05-09 22:13:36
印度承認自家戰機被擊落,罕見用中文公布戰況,莫迪察覺到了什么

印度承認自家戰機被擊落,罕見用中文公布戰況,莫迪察覺到了什么

一個有靈魂的作者
2025-05-08 15:37:39
紅場閱兵裝備持續減少,美大使館發警報!設立針對俄羅斯特別法庭

紅場閱兵裝備持續減少,美大使館發警報!設立針對俄羅斯特別法庭

鷹眼Defence
2025-05-10 17:58:16
烏軍擊中別爾哥羅德政府大樓!打掉俄軍最新火炮系統

烏軍擊中別爾哥羅德政府大樓!打掉俄軍最新火炮系統

項鵬飛
2025-05-10 19:43:34
他與高圓圓分手后,12年不談戀愛沒有緋聞,48歲娶旺夫妻子后爆紅

他與高圓圓分手后,12年不談戀愛沒有緋聞,48歲娶旺夫妻子后爆紅

野山歷史
2025-05-10 09:49:10
追夢6犯離場!科爾:木已成舟 對手更配得上這場勝利

追夢6犯離場!科爾:木已成舟 對手更配得上這場勝利

直播吧
2025-05-11 12:44:14
淚目!世臺聯正式回應卡特、墨菲:休想把趙心童積分清零

淚目!世臺聯正式回應卡特、墨菲:休想把趙心童積分清零

漣漪讀史
2025-05-10 09:59:57
被巴基斯坦俘虜的印女飛行員背景曝光!

被巴基斯坦俘虜的印女飛行員背景曝光!

荊楚寰宇文樞
2025-05-10 20:27:01
豪華中型車質量排行:沃爾沃居首,DS9墊底

豪華中型車質量排行:沃爾沃居首,DS9墊底

經濟觀察報
2025-05-08 19:17:11
行人相撞賠7萬后續,視頻還原真相法院致歉,青島文旅背鍋實在冤

行人相撞賠7萬后續,視頻還原真相法院致歉,青島文旅背鍋實在冤

天天熱點見聞
2025-05-11 09:54:05
劉亦菲在日本陪媽媽過母親節,66歲劉曉莉雍容華貴,比女兒還好看

劉亦菲在日本陪媽媽過母親節,66歲劉曉莉雍容華貴,比女兒還好看

娛樂圈圈圓
2025-05-11 08:22:18
長沙一金絲楠木展廳突起火,當地通報:未造成人員傷亡,起火原因正調查

長沙一金絲楠木展廳突起火,當地通報:未造成人員傷亡,起火原因正調查

大風新聞
2025-05-11 12:06:31
隨著維拉1-0險勝,曼城0-0爆冷,英超最新積分榜:爭5大戰懸念依舊!

隨著維拉1-0險勝,曼城0-0爆冷,英超最新積分榜:爭5大戰懸念依舊!

阿覽
2025-05-11 02:37:07
59歲葉子楣在香港,參加曾志偉壽宴,打扮不倫不類,瘦成了皮包骨

59歲葉子楣在香港,參加曾志偉壽宴,打扮不倫不類,瘦成了皮包骨

軒逸阿II
2025-04-16 14:54:16
4架陣風被擊落,民進黨慌了;綠委無奈承認,大陸空戰能力恐進步

4架陣風被擊落,民進黨慌了;綠委無奈承認,大陸空戰能力恐進步

林子說事
2025-05-10 21:56:06
比蘋果更嚴格?華為鴻蒙電腦發布,不支持第三方安裝!

比蘋果更嚴格?華為鴻蒙電腦發布,不支持第三方安裝!

一個有靈魂的作者
2025-05-09 13:03:22
2025-05-11 13:00:49
數據結構和算法
數據結構和算法
專門介紹和寫算法題解的號
227文章數 2關注度
往期回顧 全部

科技要聞

首款折疊屏iPhone,有新消息!

頭條要聞

牛彈琴:印巴戲劇性地突然宣布停火 背后有五大原因

頭條要聞

牛彈琴:印巴戲劇性地突然宣布?;?背后有五大原因

體育要聞

分手7年之后,漢堡終于原諒了德甲

娛樂要聞

S媽撒謊實錘!馬筱梅親切喊她徐媽媽

財經要聞

重慶一家人把755億巨債留給了股民

汽車要聞

空間表現是優勢 極狐T1將于5月底正式亮相發布

態度原創

藝術
時尚
數碼
健康
公開課

藝術要聞

故宮珍藏的墨跡《十七帖》,比拓本更精良,這才是地道的魏晉寫法

什么?這年頭藝術家的顏值居然卷成這樣了

數碼要聞

宏碁Nitro系列RX 9060 XT曝光:雙槽雙風扇設計

唇皰疹和口腔潰瘍是"同伙"嗎?

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 墨江| 宁都县| 金昌市| 灌阳县| 青田县| 汉中市| 隆化县| 铜山县| 喀什市| 保定市| 宁安市| 临泉县| 盐城市| 张家港市| 彭州市| 城口县| 双桥区| 水城县| 越西县| 台州市| 建平县| 灵璧县| 屯门区| 永德县| 灵川县| 曲阳县| 临西县| 隆德县| 盐亭县| 荣成市| 龙井市| 洞头县| 阳朔县| 贵溪市| 玉田县| 嵩明县| 惠安县| 乐山市| 新昌县| 崇左市| 体育|