LeetCode Spiral Matrix II

Given an integern, generate a square matrix filled with elements from 1 ton2in spiral order.

For example,Givenn=3,

You should return the following matrix:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]题意:将1到n^2的数依次填写进去。

思路:和上一道回旋的类似做法。

class Solution {public:vector<vector<int> > generateMatrix(int n) {vector<vector<int> > ans;for (int i = 0; i < n; i++) {vector<int> t = vector<int>(n, -1);ans.push_back(t);}int dx[4] = {0, 1, 0, -1};int dy[4] = {1, 0, -1, 0};int dir = 0, x = 0, y = 0;for (int i = 1; i <= n*n; i++) {ans[x][y] = i;if (x+dx[dir] == n || x+dx[dir] < 0 ||y+dy[dir] == n || y+dy[dir] < 0 ||ans[x+dx[dir]][y+dy[dir]] != -1) {dir = dir == 3 ? 0 : dir + 1;}x += dx[dir];y += dy[dir];}return ans;}};

,最有效的资本是我们的信誉,它24小时不停为我们工作。

LeetCode Spiral Matrix II

相关文章:

你感兴趣的文章:

标签云: