gpt4 book ai didi

java - 在Java中按行总和交换二维数组中的行

转载 作者:行者123 更新时间:2023-12-01 22:00:27 24 4
gpt4 key购买 nike

我实现了这个东西,但我不确定这是否正确

   Example : int [][]={{2,1,0},{2,8,9},{1,1,0}}

在上述行 1 (2+1+0=3) 中的元素总和小于行 2(2+8+9=19)< 中的元素总和 且大于第 3 行 sum(2)。

最终数组应类似于 {{2,8,9},{2,1,0},{1,1,0}}

    int arr[5][5];
int rowSum[5];
int sum = 0;
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
sum = sum + arr[i][j];
}
rowSum[i] = sum;
sum=0;
}

int swap;
//now sorting
for (int c = 0 ; c < ( n - 1 ); c++)
{
for (int d = 0 ; d < n - c - 1; d++)
{
if (rowSum[d] > rowSum[d+1]) /* For decreasing order use < */
{
swap = rowSum[d];
rowSum[d] = rowSum[d+1];
rowSum[d+1] = swap;

//swapping original array
for(int i=0;i<5;i++){
swap = arr[d][i];
arr[d][i] = arr[d+1][i];
arr[d+1][i] = swap;
}
}
}
}

最佳答案

使用 Java 8 功能:

int[][] arr = { { 2, 1, 0 }, { 2, 8, 9 }, { 1, 1, 0 } };
Arrays.sort(arr, Comparator.comparingInt((int[] row) -> Arrays.stream(row).sum()).reversed());
System.out.println(Arrays.deepToString(arr));

关于java - 在Java中按行总和交换二维数组中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33603138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com