首页 > 代码库 > LeetCode59 Spiral Matrix II
LeetCode59 Spiral Matrix II
题目:
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n = 3
,
You should return the following matrix: (Medium)
[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]
分析:
跟 Sprial Matrix I处理方式一样,先建立好n * n的数组,然后按照顺时针顺序填入数字即可。
代码:
1 class Solution { 2 public: 3 vector<vector<int>> generateMatrix(int n) { 4 vector<vector<int>> result(n, vector<int>(n,0)); 5 int rowBegin = 0, rowEnd = n - 1, colBegin = 0, colEnd = n - 1; 6 int count = 1; 7 while (rowBegin <= rowEnd && colBegin <= colEnd) { 8 for (int i = colBegin; i <= colEnd; ++i ) { 9 result[rowBegin][i] = count;10 count++;11 }12 rowBegin++;13 if (rowBegin > rowEnd) {14 break;15 }16 for (int i = rowBegin; i <= rowEnd; ++i) {17 result[i][colEnd] = count;18 count++;19 }20 colEnd--;21 if (colBegin > colEnd) {22 break;23 }24 for (int i = colEnd; i >= colBegin; --i) {25 result[rowEnd][i] = count;26 count++;27 }28 rowEnd--;29 if (rowBegin > rowEnd) {30 break;31 }32 for (int i = rowEnd; i>= rowBegin; --i) {33 result[i][colBegin] = count;34 count++;35 }36 colBegin++;37 }38 return result;39 }40 };
LeetCode59 Spiral Matrix II
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。