/* * 给定一个int类型的数n,顺序输出一个螺旋排列的正方行矩阵,比如当n=3时,输出[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] *算法:设定上下左右四个边界,每遍历一轮就调整临界值,比如: * 当从左到右填完后,上边界+1,相当于上边界向内缩。 * */ import java.util.Arrays; public class SquareMatrix { public int[][] matrix(int n){ int[][] res = new int[n][n]; int max = n*n; int num = 1; int l = 0, r = n-1, t = 0, b = n-1; while(num <= max){ for(int i = l; i <= r; i++){ res[t][i] = num++; } t++; for(int i = t; i <= b; i++){ res[i][r] = num++; } r--; for(int i = r; i >= l; i--){ res[b][i] = num++; } b--; for(int i = b; i >=t; i--){ res[i][l] = num++; } l++; } return res; } //主方法 public static void main(String[] args) { SquareMatrix s = new SquareMatrix(); int[][] m = s.matrix(3); for(int i = 0; i < m.length; i++){ for(int j = 0; j < m[i].length; j++){ } System.out.println(Arrays.toString(m[i]) + ","); } } }
leetcode---正方形矩阵
最新推荐文章于 2023-05-24 09:56:41 发布