42. Trapping Rain Water
Problem: Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining. For example, Given [0,1,0,2,1,0,1,3,2,1,2,1] , return 6 . Analysis: https://leetcode.com/problems/trapping-rain-water/solution/ Solution: class Solution { public int trap ( int [] height) { int left = 0 ; int right = height . length - 1 ; int leftMax = 0 ; int rightMax = 0 ; int res = 0 ; while (left < right) { if (height[left] < height[right]) { leftMax = Math . max(leftMax, height[left]); res += leftMax - height[left]; left ++ ; } else { rightMax = Math . max(rightMax, height[right]); res += rightMax - height[right]; right -- ; } } return res; } }
评论
发表评论