我在对整数二维数组进行排序的作业中走到了死胡同。
指令是创建一个接受二维 int 数组的函数 (不一定是矩阵)并根据内部数组的总和对外部数组进行排序。换句话说,数组的第一个索引应该是总和最小的内部数组。
例子 - 输入 - int[][] array = {{2, 4, 1,9,9,9,9}, {6, 8}, {7, 3, 6, 5, 1}};
输出 - 数组 = {{6, 8}, {7, 3, 6, 5, 1}, {2, 4, 1,9,9,9,9}};
到目前为止,我的逻辑是创建一个新的一维数组,其中包含总和 来自主数组的每个内部数组。 并根据它进行排序。
public static int[] arraysCalculator(int[][] arr) {
int[] sums = new int[arr.length];
int sum= 0;
for(int i = 0; i < arr.length; i++)
{
for(int j = 0; j < arr[i].length; j++)
{
sum += arr[i][j];
}
sums[i] = sum;
sum = 0;
}
最佳答案
您可以通过流式传输然后调用 sum()
轻松地对 int[]
求和。从那里开始,只需调用 Arrays.sort
并使用一个比较器来比较这个总和:
Arrays.sort(array, Comparator.comparingInt(a -> Arrays.stream(a).sum()));
关于java - 将二维int数组按照arr[i]的和从低到高排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56409526/