【问题标题】:Sorting a 2D array/Matrix by its diagonals按对角线对二维数组/矩阵进行排序
【发布时间】:2019-10-18 21:32:44
【问题描述】:

如何通过对矩阵的每条对角线进行排序来重新排列矩阵?

[8, 4, 1 ] [4, 1, 1]
[4, 4, 1] --> [4, 8, 4]
[4, 8, 9] ‍‍‌‌‌‍‍‍‍‌‍‍‌‍‌‌‌‍‍ [4, 8, 9]

【问题讨论】:

  • 您好,请添加更多相关标签,以便人们更好地找到您。除了“java”,你还可以尝试“排序”、“矩阵”、“算法”等等。

标签: java arrays sorting matrix


【解决方案1】:

你可以试试这样的。但是,这仅适用于正对角线。

public void diagonalArr(int[][] arr) {
        int[] diagonalArr = new int[arr.length];
        for(int i = 0;i<arr.length;i++) {
            for(int j = 0;j<arr[0].length;j++) {
                if(i == j) {
                    diagonalArr[i] = arr[i][j];
                }
            }
        }
        Arrays.sort(diagonalArr);
        for(int i = 0;i<arr.length;i++) {
            for(int j = 0;j<arr[0].length;j++) {
                if(i == j) {
                    arr[i][j] = diagonalArr[i];
                }
            }
        }
    }

【讨论】:

  • 我不确定为什么这被否决了。不胜感激。
猜你喜欢
  • 2015-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 2013-07-03
  • 2013-08-17
  • 1970-01-01
相关资源
最近更新 更多