leetcode題 42 接雨水(困難)

2021-09-25 21:54:14 字數 797 閱讀 4022

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

上面是由陣列 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度圖,在這種情況下,可以接 6 個單位的雨水(藍色部分表示雨水)。 感謝 marcos 貢獻此圖。

示例:輸入: [0,1,0,2,1,0,1,3,2,1,2,1]

輸出: 6

二、思路說明

1、雙指標法,左指標表示最短的高度,右指標往右遍歷,當右指標大於等於左指標的值的時候。計算left,right指標可以裝的雨水。同時使用乙個max指標,表示除了left指標值的第二大值。

2、當右指標到達終點,但是right指標的值比left指標的值小的時候。計算left,max指標可以裝的雨水。然後left指標和right指標同時指向max指標。

4、一直到left到終點。

三、**

class solution 

int tmp = height[max_num]*(max_num - left );

sum = sum + tmp - sum_max;

left = max_num;

right = max_num;

sumt = 0;

continue;

}//cout<<"left="

right++;

//cout<<"sumt="<}

return sum;

}};

(LeetCode 42)接雨水 思維題

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

程式設計題 leetcode42 接雨水

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

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...