沿对角线遍历二维数组
Iterating diagonally through a 2d array
我必须遍历一个二维字符数组。我已经有了迭代的代码 / 但是当涉及到 .
时我迷路了
这是我的二维数组:
a,v,i,o,n,l
t,o,t,o,l,l
m,a,r,c,o,e
s,a,g,r,c,i
o,e,n,z,o,g
s,t,r,a,r,u
我已经有:
a
tv
moi
....
我需要:
l
nl
ole
....
这里是迭代代码 / :
int size = 6;
for (int k = 0 ; k < size ; k++) {
for (int j = 0 ; j <= k ; j++) {
int i = k - j;
System.out.print( lista[i][j] + " " );
}
System.out.println();
}
for (int k = size - 2 ; k >= 0 ; k--) {
for (int j = 0 ; j <= k ; j++) {
int i = k - j;
System.out.print(lista[size - j - 1][size - i - 1] + " " );
}
System.out.println();
}
试试这个:
public class Matrix {
public static void main(String[] args) {
char[][] arr = {
{ 'a', 'v', 'i', 'o', 'n', 'l' },
{ 't', 'o', 't', 'o', 'l', 'l' },
{ 'm', 'a', 'r', 'c', 'o', 'e' },
{ 's', 'a', 'g', 'r', 'c', 'i' },
{ 'o', 'e', 'n', 'z', 'o', 'g' },
{ 's', 't', 'r', 'a', 'r', 'u' } };
for (int n = -arr.length; n <= arr.length; n++) {
for(int i = 0; i < arr.length; i++){
if((i-n>=0)&&(i-n<arr.length)){
System.out.print(arr[i][i-n]);
}
}
System.out.println();
}
}
}
您可以使用自己的代码。您唯一需要做的就是先转置矩阵。我已经为您编写并测试了它。 myArray 是您提供给我们作为输入的数组,yourArray 是您需要在代码中用作 lista 的数组。
for (int i = 5; i >= 0; i--) {
for (int j = 0; j <= 5; j++) {
yourArray[5 - i][j] = myArray[j][i];
}
}
我必须遍历一个二维字符数组。我已经有了迭代的代码 / 但是当涉及到 .
时我迷路了这是我的二维数组:
a,v,i,o,n,l
t,o,t,o,l,l
m,a,r,c,o,e
s,a,g,r,c,i
o,e,n,z,o,g
s,t,r,a,r,u
我已经有:
a
tv
moi
....
我需要:
l
nl
ole
....
这里是迭代代码 / :
int size = 6;
for (int k = 0 ; k < size ; k++) {
for (int j = 0 ; j <= k ; j++) {
int i = k - j;
System.out.print( lista[i][j] + " " );
}
System.out.println();
}
for (int k = size - 2 ; k >= 0 ; k--) {
for (int j = 0 ; j <= k ; j++) {
int i = k - j;
System.out.print(lista[size - j - 1][size - i - 1] + " " );
}
System.out.println();
}
试试这个:
public class Matrix {
public static void main(String[] args) {
char[][] arr = {
{ 'a', 'v', 'i', 'o', 'n', 'l' },
{ 't', 'o', 't', 'o', 'l', 'l' },
{ 'm', 'a', 'r', 'c', 'o', 'e' },
{ 's', 'a', 'g', 'r', 'c', 'i' },
{ 'o', 'e', 'n', 'z', 'o', 'g' },
{ 's', 't', 'r', 'a', 'r', 'u' } };
for (int n = -arr.length; n <= arr.length; n++) {
for(int i = 0; i < arr.length; i++){
if((i-n>=0)&&(i-n<arr.length)){
System.out.print(arr[i][i-n]);
}
}
System.out.println();
}
}
}
您可以使用自己的代码。您唯一需要做的就是先转置矩阵。我已经为您编写并测试了它。 myArray 是您提供给我们作为输入的数组,yourArray 是您需要在代码中用作 lista 的数组。
for (int i = 5; i >= 0; i--) {
for (int j = 0; j <= 5; j++) {
yourArray[5 - i][j] = myArray[j][i];
}
}