Wednesday, March 20, 2013
Trapping Rain Water
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.
The above elevation map is represented by array [0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being trapped. Thanks Marcos for contributing this image!
public class Solution {
public int trap(int[] A) {
// Start typing your Java solution below
// DO NOT write main() function
if(A.length==0) return 0;
int i = 0; int j = A.length-1;
int lm = A[i]; int rm = A[j];
int sum = 0;
while(i<j){
if(lm <= rm){
if(A[++i] < lm) sum += lm - A[i];
else lm = A[i];
}
else{
if(A[--j] < rm) sum += rm - A[j];
else rm = A[j];
}
}
return sum;
}
}
Subscribe to:
Post Comments (Atom)
Manacher's Longest Palindromic Substring Algorithm
http://manacher-viz.s3-website-us-east-1.amazonaws.com/#/
-
Suppose a bus is running on a loop route. It takes 10 mins for the bus to finish the route. If a guy arrives at a bus stop at uniformly rand...
-
Question: You are playing a card game with me. Suppose I shuffle a deck of 52 cards, then I show you the card one by one to you from top t...
-
Move Objects There are N objects kept in a row. The ith object is at position x_i. You want to partition them into K groups. You want ...
No comments:
Post a Comment