本文主要是介绍LeetCode - spiral-matrix-ii,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
Given an integer n, generate a square matrix filled with elements from 1 to n 2 in spiral order.
For example,
Given n =3,
You should return the following matrix:
[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ] ]
题意:
给定一个n 构造 n*n的螺旋矩阵
解题思路:
思路很简单,就是按顺序构造行和列,具体看下代码就知道了
public static int[][] generateMatrix(int n) {int[][] res = new int[n][n];if(n == 0) {return res;}int rowStart = 0;int rowEnd = n-1;int colStart = 0;int colEnd = n-1;int index = 1;while(index <= n * n) {//第一行赋值for(int i = colStart; i <= colEnd;i++) {res[rowStart][i] = index++;}//最后一列赋值for(int j = rowStart+1; j <= rowEnd;j++) {res[j][colEnd] = index++;}//最后一行赋值for(int i = colEnd - 1; i >= colStart; i--) {res[rowEnd][i] = index++;}//给第一列赋值,这时j是不能取rowStart的,刚好到8那里就结束循环,然后又跳到第一行赋值那开始执行for(int j = rowEnd - 1; j > rowStart; j--) {res[j][colStart] = index++;}rowStart ++;rowEnd --;colStart ++;colEnd --;}return res;}
这篇关于LeetCode - spiral-matrix-ii的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!