Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- vector<vector<int>> generateMatrix(int n) {
- vector<int> ans;
- for(int i=1;i<=(n*n);i++)
- {
- ans.push_back(i);
- }
- int p=0;
- vector<vector<int>> matrix(n, vector<int>(n, 0));
- int top = 0, down = n - 1, left = 0, right = n - 1;
- while (true) {
- for (int j = left; j <= right; j++)
- {
- matrix[top][j]=ans[p];
- p++;
- }
- if (++top > down)
- {
- break;
- }
- for (int i = top; i <= down; i++)
- {
- matrix[i][right]=ans[p];
- p++;
- }
- if (--right < left)
- {
- break;
- }
- for (int j = right; j >= left; j--)
- {
- matrix[down][j]=ans[p];
- p++;
- }
- if (--down < top)
- {
- break;
- }
- for (int i = down; i >= top; i--)
- {
- matrix[i][left]=ans[p];
- p++;
- }
- if (++left > right)
- {
- break;
- }
- }
- return matrix;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment