zoukankan      html  css  js  c++  java
  • LeetCode59. 螺旋矩阵 II

    代码

     1 class Solution {
     2 public:
     3     vector<vector<int>> generateMatrix(int n) {
     4         
     5         int startx = 0,starty = 0; //每个loop起始位置
     6         int loop = n / 2; //循环次数,n为奇数要另外考虑中心位置
     7         int count = 1; //矩阵元素,从1—n2
     8         int offset = 1; //控制每层循环的边长变化
     9 
    10         //用vector生成二维数组
    11         vector<vector<int>> res (n);
    12         for(int i = 0;i < n;i++)
    13             res[i].resize(n);
    14         
    15         while(loop--){
    16             int i = startx;
    17             int j = starty;
    18 
    19             //上边:从左到右
    20             for(; j < starty + n - offset;j++)
    21                 res[startx][j] = count++;
    22             //右边:从上到下
    23             for(; i < startx + n - offset;i++ )
    24                 res[i][j] = count++;
    25             //下边:从右到左
    26             for(;j > starty;j--)
    27                 res[i][j] = count++;
    28             //左边:从下到上
    29             for(;i > startx;i--)
    30                 res[i][j] = count++;
    31             
    32             startx++; starty++;
    33             offset += 2;
    34         }
    35         if(n%2 != 0) res[n/2][n/2] = n*n;
    36         
    37         return res;
    38     }
    39 };

    将整个矩阵的起点设为坐上角,该点为坐标原点,然后水平向右为x轴,竖直向下为y轴。一定要按照一定的顺序去写(顺时针),并且要遵循循环不变量原则,每一条边的遍历范围为左闭右开。

  • 相关阅读:
    sqlchemy self made
    scrapy 自定义图片路径保存,并存到数据库中
    关于scrapy下载文件重命名的办法以及对应url没有文件后缀的办法
    下载转码
    scrapy 下载图片 from cuiqingcai
    Scrapy框架学习
    字符串处理
    scrapy 日志处理
    sqlalchemy多对多查询
    sqlalchemy 多对多关系
  • 原文地址:https://www.cnblogs.com/fresh-coder/p/14312485.html
Copyright © 2011-2022 走看看