LeetCode-Trapping Rain Water
2013-08-03 20:57
375 查看
class Solution { public: int trap(int A[], int n) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<int> leftMax; vector<int> rightMax; int curMax = 0; //leftMax[i]保存A[i]左侧中最大的数 for (int i = 0; i < n; ++i) { leftMax.push_back(curMax); curMax = max(curMax, A[i]); } curMax = 0; //rightMax[i]保存A[i]右侧中最大的数 for (int i = n - 1; i >= 0; --i) { rightMax.insert(rightMax.begin(), curMax); curMax = max(curMax, A[i]); } int ans = 0; //i处能储存的水的容量相当于A[i]左侧和右侧中较小的柱子高度与A[i]之差 for (int i = 0; i < n; ++i) { int minMax = min(leftMax[i], rightMax[i]); int diff = minMax - A[i]; ans += diff < 0 ? 0 : diff; } return ans; } };
相关文章推荐
- LeetCode(8) - Trapping Rain Water
- Leetcode 42 Trapping Rain Water
- [LeetCode111]Trapping Rain Water
- 【leetcode】Trapping Rain Water
- leetcode - Trapping Rain Water
- Leetcode NO.42 Trapping Rain Water
- leetcode Trapping Rain Water
- [LeetCode]Trapping Rain Water
- LeetCode - Trapping Rain Water
- LeetCode 111 Trapping Rain Water
- 37_leetcode_Trapping Rain water
- Java [Leetcode 42]Trapping Rain Water
- LeetCode Trapping Rain Water
- leetcode Trapping Rain Water
- [Leetcode 42, Hard] Trapping Rain Water
- leetcode--Trapping Rain Water
- leetcode - Trapping Rain Water
- [leetcode] Trapping Rain Water
- leetcode[42]Trapping Rain Water
- LeetCode | Trapping Rain Water