zoukankan      html  css  js  c++  java
  • 力扣算法题—059螺旋矩阵

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

    示例:

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

     1 #include "_000库函数.h"
     2 
     3 //与上题螺旋矩阵输出数组一样
     4 //一个时输出,一个是输入
     5 class Solution {
     6 public:
     7     vector<vector<int>> generateMatrix(int n) {
     8         vector<vector<int>>res(n, vector<int>(n, 0));
     9         int u = 0, d = n - 1, l = 0, r = n - 1;
    10         int num = 1;
    11         while (num <= n * n) {
    12             for (int j = l; j <= r; ++j)res[u][j] = num++;//左向右行
    13             if (++u > d)break;
    14             for (int i = u; i <= d; ++i)res[i][r] = num++;//上向下列
    15             if (--r < l)break;
    16             for (int j = r; j >= l; --j)res[d][j] = num++;//右向左行
    17             if (--d < u)break;
    18             for (int i = d; i >= u; --i)res[i][l] = num++;//下向上列
    19             if (++l > r)break;
    20         }
    21         return res;
    22 
    23     }
    24 };
    25 
    26 void T059() {
    27     vector<vector<int>>res;
    28     Solution s;
    29     res = s.generateMatrix(3);
    30     for (auto &a : res) {
    31         for (auto b : a)
    32             cout << b << " ";
    33         cout << endl;
    34     }
    35     cout << "*****************" << endl;
    36 
    37     res = s.generateMatrix(4);
    38     for (auto &a : res) {
    39         for (auto b : a)
    40             cout << b << " ";
    41         cout << endl;
    42     }
    43     cout << "*****************" << endl;
    44 
    45 
    46 }
  • 相关阅读:
    vue 相对其他热门 框架 优点 --- 待续
    vue router 只需要这么几步
    正则表达式
    MySQL数据库优化的八种方式
    Django REST Framework 最佳实践
    Node.js ZLIB
    Node.js 虚拟机
    Node.js 实用工具
    Node.js URL
    Node.js UDP/Datagram
  • 原文地址:https://www.cnblogs.com/zzw1024/p/10650119.html
Copyright © 2011-2022 走看看