首页 > 代码库 > [leetcode-59-Spiral Matrix II]
[leetcode-59-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:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
思路:
4个方向变量上下左右控制边界。
vector<vector<int>> generateMatrix(int n) { vector<vector<int>>matrix(n,vector<int>(n,0)); int up = 0, down = n - 1, left = 0, right = n - 1 ,k =1; while (1) { for (int col = left; col <= right; col++)matrix[up][col] = k++; if (++up>down)break; for (int row = up; row <= down; row++)matrix[row][right] = k++; if (--right < left)break; for (int col = right; col >= left; col--)matrix[down][col] = k++; if (--down < up)break; for (int row = down; row >= up; row--)matrix[row][left] = k++; if (++left>right)break; } return matrix; }
[leetcode-59-Spiral Matrix II]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。