LintCode-剑指Offer-(381)数倒置

来源:互联网 发布:centos 伪文件系统 编辑:程序博客网 时间:2024/06/03 09:13
 vector<vector<int>> generateMatrix(const int n) {        // Write your code here        bool **IsVisited;        IsVisited = new bool*[n];        vector<vector<int>> v;        if (n==0)return v;        for (int i = 0;i<n;i++){            v.push_back(vector<int>());        }        for (int i = 0; i<n; i++)        {            IsVisited[i] = new bool[n];        }        for (int i = 0; i<n; i++)        {            for (int j = 0; j<n; j++)            {                IsVisited[i][j] = false;                v[i].push_back(0);            }        }        int dx[4] = {1,0,-1,0};        int dy[4] = {0,1,0,-1};        int dxyloc = 0;        int ii = 0;        int jj = 0;        int tmpval = 1;        while (true)        {            if (ii==-1||jj==-1||ii==n||jj==n||IsVisited[ii][jj]==true){                ii = ii-dy[dxyloc];                jj = jj-dx[dxyloc];                dxyloc = (dxyloc+1)%4;                if (IsVisited[ii+dy[dxyloc]][jj+dx[dxyloc]]==true){                    return v;                }            }            else{                v[ii][jj] = tmpval;                IsVisited[ii][jj] = true;                tmpval++;            }            ii = ii+dy[dxyloc];            jj = jj+dx[dxyloc];        }    }};
0 0
原创粉丝点击