leetcode: Trapping Rain Water

来源:互联网 发布:如何评价aqours 知乎 编辑:程序博客网 时间:2024/06/06 04:48

好久没有做leetcode了,因为最近心情不好。

这道题还是左右指针,一层一层地算。

public class Solution {

    public int trap(int[] A) {
      int sum=0;
        int begin=0;
        int i,l,r,min;
        int n=A.length;
        if(n==0)
        return 0;
        l=0;r=n-1;
        min=0;
        while(l<r)
        {
        while(l<r && (A[l]<=A[l+1] || A[l]<=min))
        l++;
        while(r>l && (A[r]<=A[r-1] || A[r]<=min))
        r--;
       
        if(l>=r)
        break;
        min=A[l];
        if(min>A[r])
        min=A[r];
       
        for(i=l+1;i<r;i++)
        {
        if(A[i]<min)
        {
        sum+=min-A[i];
        A[i]=min;
        }
        }
        // System.out.println(l+" "+r+" "+min+" "+" "+sum);
        if(min==A[l])
        l++;
        if(min==A[r])
        r--;
       
        }
        return sum;
    } 
}
0 0
原创粉丝点击