友だちの配列を再帰的に実行しようとしていますが、arr1[i][j] = arr2[j][i]
の場合は1つの配列が別のもののフレンドですので、再帰的にしようとしましたが、最初の行のみを変更します。フレンドアレイの再帰
int friendArray[][] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16}
};
friendArrayRecursive(friendArray, 0,0);
private static void friendArrayRecursive(int[][] arr, int row, int col){
if(row < arr.length){
if (col < arr[row].length) {
arr[row][col] = arr[col][row];
friendArrayRecursive(arr, row, col + 1);
} else {
friendArrayRecursive(arr, row + 1, 0);
}
}
}
しかし、出力の代わりに、BE:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
のみ1つのアレイでそれを行う私は私が推測する2つの変更を作成することはできません同じアレイ上であることをしている意味、私はこれをしませんでした
は
です。1 5 9 13
5 6 10 14
9 10 11 15
13 14 15 16
その他の値を保存して5などの2を変更するにはどうすればよいですか? nhouser9として
if(row >= arr.length)
return;
if(col >= arr[row].length)
return;
if(row < col) {
int temp;
temp = arr[row][col];
arr[row][col] = arr[col][row];
arr[col][row] = temp;
friendArrayRecursive(arr, row, col + 1);
} else {
friendArrayRecursive(arr, row + 1, 0);
}
それは私が必要なものです、ありがとう@循環! :Dは魅力のように動作します – Stuart2041
col
Stuart2041
この比較を使用すると、アルゴリズムはcol
circular