import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
//从小到大递增矩阵
int[][] n = {
{1, 3, 4, 5},
{6, 7, 8, 9},
{10, 11, 12, 13},
{14, 17, 19, 20}
};
//储存起来,可以用数组,也可以用集合
ArrayList<Integer> x = new ArrayList<>();
for (int i = 0; i < n.length; i++) {
for (int j = 0; j < n[0].length; j++) {
x.add(n[i][j]);
}
}
int count = 0;
int[][] arr = new int[n.length][n[0].length];
int leftrow = 0, leftclo = 0, rightrow = n.length - 1, rightclo = n[0].length - 1;
while (leftrow <= rightrow && leftclo <= rightclo) {
int r = leftrow, c = leftclo;
while (c <= rightclo) {
arr[r][c++] = x.get(count++);
}
c--;
count--;
while (r <= rightrow) {
arr[r++][c] = x.get(count++);
}
r--;
count--;
while (c >= leftclo) {
arr[r][c--] = x.get(count++);
}
c++;
count--;
while (r > leftrow) {
arr[r--][c] = x.get(count++);
}
leftrow++;
leftclo++;
rightclo--;
rightrow--;
}
for (int[] c : arr) {
System.out.println(Arrays.toString(c));
}
}
}
将数组转化为螺旋数组
最新推荐文章于 2024-10-05 12:07:50 发布