• leetcode第一刷_Spiral Matrix II


    跟上一题的策略全然一样,这个题是要求保存当前增加的是第几个数,由于矩阵里面存的就是这个东西。

    我有尝试想过是不是有一种方法能够直接推算出每一行的数据是哪些。但没过多久就放弃了。这样的方法尽管能够避免在一个二维数组中的随机訪问,可是策略太复杂了,得不偿失。

    class Solution {
    public:
        vector<vector<int> > generateMatrix(int n) {
            vector<int> tpres(n, 0);
            vector<vector<int> > res(n, tpres);
            if(n == 0)  return res;
            int i=0, j=0, level=0, cur = 1;
            while(cur<=n*n){
                while(j<n-level)    res[i][j++] = cur++;
                --j;
                while(i<n-level-1)    res[++i][j] = cur++;
                while(j>level) res[i][--j] = cur++;
                --i;
                while(i>level) res[i--][j] = cur++;
                ++j;++i;
                level++;
            }
            return res;
        }
    };


  • 相关阅读:
    Python 爬虫一 简介
    linux 基础笔记本
    Celery 分布式任务队列快速入门
    Git & Github
    Python 设计模式
    Python 数据结构
    Python 基础算法
    js2wordcloud 词云包的使用
    lambda 3
    sql server 远程
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5091549.html
Copyright © 2020-2023  润新知