当前位置:   article > 正文

二维数组(矩阵)对角线输出

如何输出二维数组的对角线
/**二维数组 对角线输出 两个方向例如对于数组:{ 1, 2, 3, 4 }, { 5, 6, 7, 8 },{ 9, 10, 11, 12 }, { 13, 14, 15, 16 },slash方向输出:1 5 2 9 6 3 13 10 7 4 14 11 8 15 12 16 backslash输出:4 3 8 2 7 12 1 6 11 16 5 10 15 9 14 13 数组的行数和列数可以不相等,但同一行的元素个数必须相等,称为"矩阵"更合适 */public class PrintArray {    public static void main(String[] args) {        /*// row != col:        int[][] arr = new int[][] {                 { 1, 2, 3, 4 },                 { 5, 6, 7, 8 },                { 9, 10, 11, 12 },                 //{ 13, 14, 15, 16 },         };        */        int[][] arr = new int[][] {                 { 1, 2, 3, 4 },                 { 5, 6, 7, 8 },                { 9, 10, 11, 12 },                 { 13, 14, 15, 16 },         };        slash(arr);        System.out.println("======");        backslash(arr);    }    public static void slash(int[][] arr) {        if (arr == null) {            throw new IllegalArgumentException("arr cannot be null");        }        int col = arr[0].length;        int row = arr.length;        for( int k = 0 ; k < col * 2 -1 ; k++ ) {     //k代表有多少行输出,由col决定            int sum = k;                              //同一行的元素,行下标和列下标的和相等            for( int j = 0 ; j < col ; j++ ) {                                 int i = sum - j;                if(isValidIndex(i, row) && isValidIndex(j, col)) {                    System.out.print( arr[i][j] + " " );                }            }            System.out.println();        }    }    public static void backslash(int[][] arr) {        if (arr == null) {            throw new IllegalArgumentException("arr cannot be null");        }        int row = arr.length;        int col = arr[0].length;        for (int k = 0; k < col * 2 - 1; k++) {     //k代表有多少行输出,由col决定            int diff = col - k - 1;                 //同一行的元素,行下标和列下标的差相等            for (int j = 0; j < col; j++) {                int i = j - diff;                if (isValidIndex(i, row) && isValidIndex(j, col)) {                    System.out.print(arr[i][j] + " ");                }            }            System.out.println();        }    }    private static boolean isValidIndex(int i, int n) {        return i >= 0 && i < n;    }}
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/201709
推荐阅读
相关标签
  

闽ICP备14008679号