LeetCode-59-螺旋矩-II 5月 30, 2019 858 59. 螺旋矩阵 II 给定一个正整数 n,生成一个包含 1 到 n² 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 与54. 螺旋矩阵类似。 只需要依次给新数组中的相应元素赋值即可。 Solution:12345678910111213141516171819202122232425262728293031323334353637383940414243444546class Solution {public: vector<vector<int>> generateMatrix(int n) { vector<vector<int> > res(n, vector<int>(n));; if(n <= 0) return res; int k = 1; int left = 0, right = n-1, up = 0, down = n-1; while(left < right && up < down){ int i = left, j = up; while(i < right){ res[j][i] = k++; i++; } while(j < down){ res[j][i] = k++; j++; } while(i > left){ res[j][i] = k++; i--; } while(j > up){ res[j][i] = k++; j--; } left++; right--; up++; down--; } //形不成圈(单列或者单行) if(up == down){ while(left <= right){ res[up][left++] = k++; } }else if(left == right){ while(up <= down){ res[up++][left] = k++; } } return res; }}; Please enable JavaScript to view the comments powered by Disqus.