题解 | #接雨水问题#

接雨水问题

http://www.nowcoder.com/practice/31c1aed01b394f0b8b7734de0324e00f

public long maxWater (int[] arr) {
int l=arr.length;
int temp=arr[0];long max=0;long realmax=0;
int k=0;int gao=0;
for(int i=1;i<l;i++){
while(i<l&&arr[i]<temp){
max=max+(long)temp-(long)arr[i];
gao=Math.max(gao,arr[i]);
i++;
}
if(i==l){
temp=gao;
i=k;
max=0;
}else{
gao=0;
realmax=realmax+max;
temp=arr[i];
k=i;
max=0;
}
}
return (long)realmax;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务