zoukankan      html  css  js  c++  java
  • [leetcode-59-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 ]
    ]

    思路:

    4个方向变量上下左右控制边界。

    vector<vector<int>> generateMatrix(int n) {
                
             vector<vector<int>>matrix(n,vector<int>(n,0));
             int up = 0, down = n - 1, left = 0, right = n - 1 ,k =1;
             while (1)
             {
                 for (int col = left; col <= right; col++)matrix[up][col] = k++;
                 if (++up>down)break;
                 for (int row = up; row <= down; row++)matrix[row][right] = k++;
                 if (--right < left)break;
                 for (int col = right; col >= left; col--)matrix[down][col] = k++;
                 if (--down < up)break;
                 for (int row = down; row >= up; row--)matrix[row][left] = k++;
                 if (++left>right)break;
             }
             return matrix; 
        }
  • 相关阅读:
    错题
    static变量与普通变量的异同
    C—变量
    C—变量—register
    HDU_oj_1001 Sum Problem
    HDU_oj_1000 A+B Problem
    复变函数(上)
    信号与系统(下)
    信号与系统(中)
    信号与系统(上)
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/6930727.html
Copyright © 2011-2022 走看看