• [LeetCode] Spiral Matrix II


    Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

    For example,
    Given n = 3,

    You should return the following matrix:

    [
     [ 1, 2, 3 ],
     [ 8, 9, 4 ],
     [ 7, 6, 5 ]
    ]

    继续DFS
     1 class Solution {
     2 private:
     3     int step[4][2];
     4     bool canUse[100][100];
     5 public:
     6     void dfs(int dep, vector<vector<int> > &matrix, int direct, int x, int y)
     7     {
     8         for(int i = 0; i < 4; i++)
     9         {
    10             int j = (direct + i) % 4;
    11             int tx = x + step[j][0];
    12             int ty = y + step[j][1];
    13             if (0 <= tx && tx < matrix.size() && 0 <= ty && ty < matrix[0].size() && canUse[tx][ty])
    14             {
    15                 canUse[tx][ty] = false;
    16                 matrix[tx][ty] = dep;              
    17                 dfs(dep + 1, matrix, j, tx, ty);               
    18             }            
    19         }
    20     }
    21     
    22     vector<vector<int> > generateMatrix(int n) {
    23         // Start typing your C/C++ solution below
    24         // DO NOT write int main() function
    25         step[0][0] = 0;
    26         step[0][1] = 1;
    27         step[1][0] = 1;
    28         step[1][1] = 0;
    29         step[2][0] = 0;
    30         step[2][1] = -1;
    31         step[3][0] = -1;
    32         step[3][1] = 0;
    33         vector<vector<int> > ret(n, vector<int>(n));
    34         memset(canUse, true, sizeof(canUse));
    35         dfs(1, ret, 0, 0, -1);
    36         
    37         return ret;        
    38     }
    39     
    40 };
  • 相关阅读:
    根据坐标点画图形
    js 解析geojson格式
    devexpress 安装
    DataTable 获取列名
    ADO.NET 注册
    css:outline
    javascript函数sort
    引用类型-2015/10/06
    2015-11-02-js
    jquery
  • 原文地址:https://www.cnblogs.com/chkkch/p/2775713.html
Copyright © 2020-2023  润新知