• Leetcode每日一题 59. 螺旋矩阵 II


    59. 螺旋矩阵 II

    给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

    示例 1:


    输入:n = 3
    输出:[[1,2,3],[8,9,4],[7,6,5]]

    示例 2:

    输入:n = 1
    输出:[[1]]

    提示:

    • 1 <= n <= 20

    知道昨天那题怎么写了,今天这题就更简单了,既然是要生成螺旋矩阵,我们既然已经知道了如何遍历螺旋矩阵,那么只要在遍历的过程中给定一个不断增长的变量就行了。

    class Solution {
    public:
        vector<vector<int>> generateMatrix(int n) {
            vector<vector<int>> ans(n,vector<int>(n));
            
            int x1 = 0,y1 = 0;
            int x2 = n - 1 , y2 = n - 1;
            int num = 1;
            while(true)
            {
                if(x1>x2||y1>y2)
                    break;
                
                if(x1 == x2)
                {
                    for(int i = y1; i <= y2; i++)
                        ans[x1][i] = num++;
                    break;
                }
    
                if(y1 == y2)
                {
                    for(int i = x1 ; i <= x2 ;i++)
                        ans[i][y1] = num++;
                    break;
                }
    
                for(int i = y1 ; i < y2 ; i++)ans[x1][i] = num++;
                for(int i = x1 ; i < x2 ; i++)ans[i][y2] = num++;
                for(int i = y2 ; i > y1 ; i--)ans[x2][i] = num++;
                for(int i = x2 ; i > x1 ; i--)ans[i][y1] = num++;
    
                x1++;
                y1++;
                x2--;
                y2--;
            }
            
            return ans;
        }
    };
  • 相关阅读:
    深入理解计算机系统
    Python基础知识点
    贝叶斯分类器
    matplotlib 库的使用
    Linux 学习笔记
    支持向量机
    神经网络
    决策树
    k近邻法的实现
    智能过滤:九眼过滤管应对千变万化
  • 原文地址:https://www.cnblogs.com/xiangqi/p/14542612.html
Copyright © 2020-2023  润新知