Candy
//http://www.cnblogs.com/springfor/p/3877120.html
//Trapping Rain Water
public class Solution {
public int candy(int[] ratings) {
//http://www.cnblogs.com/springfor/p/3877120.html
//Trapping Rain Water
if(ratings==null || ratings.length==0) return 0;
int res = 0;
int[] rt = new int[ratings.length];
int[] lf = new int[ratings.length];
lf[0]=1; // compare to left
for(int i=1; i<ratings.length; i++){
if(ratings[i]>ratings[i-1])
lf[i] = lf[i-1]+1;
else
lf[i]=1;
}
// rt[0] =1;
rt[ratings.length-1]= lf[ratings.length-1];
for(int j=ratings.length-2; j>=0; j--){
if(ratings[j]>ratings[j+1])
rt[j] = rt[j+1]+1;
else
rt[j]=1;
}
for(int i=0; i<ratings.length; i++){
res += Math.max(lf[i], rt[i]);
}
return res;
}
}
public class Solution {
public int candy(int[] ratings) {
//http://www.cnblogs.com/springfor/p/3877120.html
//Trapping Rain Water
if(ratings==null || ratings.length==0) return 0;
int res = 0;
int[] rt = new int[ratings.length];
int[] lf = new int[ratings.length];
lf[0]=1; // compare to left
for(int i=1; i<ratings.length; i++){
if(ratings[i]>ratings[i-1])
lf[i] = lf[i-1]+1;
else
lf[i]=1;
}
// rt[0] =1;
rt[ratings.length-1]= lf[ratings.length-1];
for(int j=ratings.length-2; j>=0; j--){
if(ratings[j]>ratings[j+1])
rt[j] = rt[j+1]+1;
else
rt[j]=1;
}
for(int i=0; i<ratings.length; i++){
res += Math.max(lf[i], rt[i]);
}
return res;
}
}