获取方形矩阵两串对角线数字之和的差值

 1  /**
 2      * 获取方形矩阵两串对角线数字之和的差值
 3      *
 4      * 1 2 3
 5      * 4 5 6
 6      * 7 8 9
 7      *
 8      * 1+5+9=15;
 9      * 3+5+7=15;
10      * 15-15=0;
11      * @param arr
12      * @return
13      */
14     public static Integer diagonalDiferrence(ArrayList<ArrayList<Integer>> arr){
15         if(arr==null){
16             return null;
17         }
18         if (arr.isEmpty()){
19             return null;
20         }
21         for (ArrayList<Integer> integers : arr) {
22             for (Integer integer : integers) {
23                 if (integer<-100 || integer > 100){
24                     return null;
25                 }
26             }
27         }
29         int count=0;
30         ArrayList<Integer> integerArrayList = new ArrayList<>();
31         for (int i = 0; i < arr.size(); i++) {
32             ArrayList<Integer> integerList = arr.get(i);
33             for (int i1 = 0; i1 < integerList.size(); i1++) {
34                 if(count==i1){
35                     Integer i2 = integerList.get(i1);
36                     integerArrayList.add(i2);
37                     break;
38                 }else if (integerArrayList.size()==count){
39                     if (i1==(count-1)){
40                         Integer i2 = integerList.get(count);
41                         integerArrayList.add(i2);
42                         break;
43                     }else {
44                         continue;
45                     }
46                 }else {
47                     break;
48                 }
49             }
50             count++;
51         }
53         System.out.println(integerArrayList);
55         int count1=0;
56         ArrayList<Integer> integerArrayList1 = new ArrayList<>();
57         for (int i = 0; i < arr.size(); i++) {
58             List<Integer> integerList = arr.get(i);
59             int reverseIndex=integerList.size()-1;
60             for (int i1 = integerList.size()-1; i1 >=0 ; i1--) {
61                 if(count1==(integerList.size()-i1-1)){
62                     Integer i2 = integerList.get(i1);
63                     integerArrayList1.add(i2);
64                     break;
65                 }else if (integerArrayList1.size()==count1){
66                     if (i1==(integerList.size()-count1-1)){
67                         Integer i2 = integerList.get(reverseIndex--);
68                         integerArrayList1.add(i2);
69                         break;
70                     }else {
71                         continue;
72                     }
73                 }else {
74                     break;
75                 }
76             }
77             count1++;
78         }
80         System.out.println(integerArrayList1);
82         int sum=0;
83         for (Integer integer : integerArrayList) {
84             sum+=integer;
85         }
86         int sum1=0;
87         for (Integer integer : integerArrayList1) {
88             sum1+=integer;
89         }
91         int minersVal=sum-sum1;
92         if (minersVal<0){
93             int i = sum1 - sum;
94             return i;
95         }
97         return minersVal;
98     }

 

posted @ 2024-09-05 11:25  coderlwz  阅读(11)  评论(0编辑  收藏  举报