leetcode 59.螺旋矩阵 java

题目:给定一个整数n,生成一个包含1到n^{2}所有元素,且元素按照顺时针顺序螺旋排列的nxn正方形矩阵matrix。

示列:输入  n = 3

        输出:[1,2,3],[8,9,4],[7,6,5]

解题思路:跑一层削一层

leetcode 59.螺旋矩阵 java_第1张图片

代码:

public static int[][] generateMatrix(int n) {
		int left = 0;
		int right = n-1;
		int top = 0;
		int bottom = n-1;
		int k = 1;
		int[][] nums = new int[n][n];
		//跑一层削一层
		while(k <= n*n) {
			for(int i = left; i <= right; i++, k++) {
				nums[top][i] = k;
			}
			top++;
			for(int i = top; i <= bottom; i++, k++) {
				nums[i][right] = k;
			}
			right--;
			for(int i = right; i >= left;i--,k++) {
				nums[bottom][i] = k;
			}
			bottom--;
			for(int i = bottom; i>= top;i--,k++) {
				nums[i][left] = k;
			}
			left++;
		}
		return nums;			
	}

你可能感兴趣的:(leetcode,矩阵,算法,java,eclipse)