59. Spiral Matrix II

题目链接

https://leetcode.com/problems/spiral-matrix-ii/

解题思路

54. Spiral Matrix一样

代码

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> ans(n, vector<int>(n, 0));
        int count = 1;
        int up = 0, down = n - 1, left = 0, right = n - 1;
        while (up <= down && left <= right) {
            if (up < n) {
                for (int i = left; i <= right; ++i) {
                    ans[up][i] = count++;
                }
                up++;
            }

            if (right >= 0) {
                for (int i = up; i <= down; ++i) {
                    ans[i][right] = count++;
                }
                right--;
            }

            if (down >= up) {
                for (int i = right; i >= left; --i) {
                    ans[down][i] = count++;
                }
                down--;
            }

            if (left <= right) {
                for (int i = down; i >= up; --i) {
                    ans[i][left] = count++;
                }
                left++;
            }
        }
        return ans;
    }
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容