• 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 ]

    ]

     tag: 坐标变换。  递归。 矩阵

     

    public class Solution {
        public int[][] generateMatrix(int n) {
            
            if(n <= 0) {
                return new int[0][0];
            }
            
            if(n == 1) {
                int[][] matrix = new int[1][1];
                matrix[0][0] = 1;
                return matrix;
            }
            
            int x = 0;
            int y = 0;
            int rows = n;
            int cols = n;
            int[][] matrix = new int[n][n];
            int count = 1;
            helper(matrix, x, y, rows, cols, count);
            return matrix;
        }
        
        public void helper(int[][] matrix, int x, int y, int rows, int cols, int count) {
            
            if(rows <= 0 || cols <= 0) {
                return;
            }
            
            // first line
            for(int i = 0; i < cols; i++) {
                matrix[x][y + i] = count++;
            }
            
            // right line
            for(int i = 1; i < rows - 1; i++) {
                matrix[x + i][y + cols - 1] = count++;
            }
            
            // last line
            if(rows > 1) {
                for(int i = cols - 1; i >= 0; i-- ) {
                    matrix[x + rows - 1 ][y + i] = count++;
                }
            }
            
            if(cols > 1) {
                for(int i = cols - 2; i > 0; i--) {
                    matrix[x + i][y] = count++;
                }
            }
            
            helper(matrix, x + 1, y + 1, rows - 2, cols - 2,count);
        }
    }
    

      

     

  • 相关阅读:
    未登录词识别方法研究公布硕士论文最新进展五(2007.4.26)
    公布硕士论文最新进展一(2007.3.6)
    对于切分歧义以及识别未登录词的随想公布硕士论文最新进展四(2007.4.13)
    一则杂感一次医院项目的感悟
    公布硕士论文最新进展三(2007.3.26)
    毕业典礼7.1
    家乡风光
    还在深圳!
    经历摩托罗拉
    又回来了,南京!
  • 原文地址:https://www.cnblogs.com/superzhaochao/p/6476050.html
Copyright © 2020-2023  润新知