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