看起来有意思,其实也不是很难,下面是我的代码;
- package cn.itheima.luntan;
- public class Demo4 {
- /**9 9 9 9
- 3 0 0 9
- 7 8 9 6
- 算出外围最小的数,在用这个最小的数去减外围之外内的数,为负数,说明该处的值比外围最小数大,是不能存水的,
- 直接跳过这块板,也就是认为它装水为0,为正则相加得到能装多少水,
- 这是我的理解
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- int min=100000;
- int x=0;
- int y=0;
- int num[][]={{9,3,7},{9,0,8},{9,0,9},{9,9,6}};
- for(int i=0;i<num.length;i++){
- for(int j=0;j<num[0].length;j++){
- if(i==0 || i==num.length-1){
- while(num[i][j]<min){
- min=num[i][j];
-
- }
- }else{
- if(num[i][0]<min){
- min=num[i][0];
- }
- if(num[i][num[0].length-1]<min){
- min=num[i][num[0].length-1];
- }
- }
- }
-
- }
- for(int n=1;n<num.length-1;n++){
-
- for(int m=1;m<num[0].length-1;m++){
- x+=min-num[n][m];
- if(x<0){
- x=0;
- }
-
- y+=x;
- x=0;
-
-
- }
- }
-
- System.out.println(min);
- System.out.println(y);
- }
- }
复制代码
|