Trapping Rain Water

想法还是很重要的,像笨办法解决脑袋都不行

大致思路是。因为是容器,所以有壁垒,左边当作壁垒-〉右边

                                                   右边当作壁垒-〉左边

                                                   最小的那个值就是真是的容量

public int soluTime(int[] A){
		 if(A.length<3)return 0;
		 int result[][]=new int[2][A.length];
		 int startLeft=A[0];
		 int startRight=A[A.length-1];
		 int count=0;
		 
		 for(int i=0;i<A.length;i++){
			 if(A[i]<startLeft){
				 result[0][i]=startLeft-A[i];
			 }else{
				 startLeft=A[i];
			 }
		 }
		 
		 for(int j=A.length-1;j>=0;j--){
			 if(A[j]<startRight){
				 result[1][j]=startRight-A[j];
			 }else{
				 startRight=A[j];
			 }
		 }
		  for(int k=0;k<A.length;k++){
			int  choice=0;
			  if(result[0][k]>result[1][k])
			  choice=1;
			  count+=result[choice][k];
		  }
		  System.out.println(Arrays.toString(result[0]));
		  System.out.println(Arrays.toString(result[1]));
		 return count;
	 }

 

你可能感兴趣的:(Trapping Rain Water)