交换二维数组

沿对角线交换NxN的二维数组的行、列数据

对角线往右的点,才需要交换;往左的点不用交换,避免重复交换。

public class Main {
    private void print(int[][] arr){
        for (int[] a:arr) {
            for (int b: a) {
                System.out.print(b+"\t");
            }
            System.out.println();
        }
    }

    private void swap(int[][] arr){
        int len = arr.length;
        for (int i = 0; i < len; i++) {
            for (int j = 0; j < len; j++) {
                if (i<j) {
                    int temp = arr[i][j];
                    arr[i][j] = arr[j][i];
                    arr[j][i] = temp;
                }
            }
        }
    }

    public static void main(String[] args) {
        int[][] arr = new int[][]{
   
   {1,2,3,4,5},{11,12,13,14,15},{21,22,23,24,25},{31,32,33,34,35},{41,42,43,44,45}};

        Main main = new Main();
        main.print(arr);
        main.swap(arr);
        System.out.println();
        main.print(arr);
    }
}

猜你喜欢

转载自blog.csdn.net/sxf1061700625/article/details/108229174
今日推荐