zoukankan      html  css  js  c++  java
  • LeetCode 59 螺旋矩阵II

    LeetCode 59 螺旋矩阵II

    该题与leetcode 54 螺旋矩阵I异曲同工,同样需要使用方向数组来进行周期性的方向调整

    执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
    内存消耗:37.3 MB, 在所有 Java 提交中击败了80.52%的用户

    class Solution {
        public int[][] generateMatrix(int n) {
            //利用方向数组: 右、下、左、上
            int[][] directs = new int[][]{
                {0,1},{1,0},{0,-1},{-1,0}
            };
            
            //输出矩阵
            int[][] matrix = new int[n][n];
            //初始打印值、方向、坐标
            int num = 1, direct = 0, row = 0 , col = 0;
            while(num <= (long)Math.pow(n,2)) {
                //输出当前值
                matrix[row][col] = num;
                num++;
                //当前方向下一点非法,则调整方向: 数组边界越界、碰到已遍历位置
                if(((row+directs[direct][0])<0 ||
                    (row+directs[direct][0])>=n) ||
                    ((col+directs[direct][1])<0 ||
                    (col+directs[direct][1])>=n) ||
                    matrix[row+directs[direct][0]][col+directs[direct][1]]!=0) 
                    direct++;
                //调整方向,以4为周期循环
                direct = direct%4;
                //下一点坐标计算
                row += directs[direct][0];
                col += directs[direct][1];
            }
    
            return matrix;
        }
    }
    
  • 相关阅读:
    STM32固件库和自定义工程模板
    STM32存储器映射和寄存器映射
    VScode搭建OpenCV环境
    手写数字识别——基于LeNet-5卷积网络模型
    敏感信息泄露
    Google的高级搜索——Google hack
    session fixation攻击
    认证和会话管理漏洞
    SQLmap
    基于时间型SQL盲注
  • 原文地址:https://www.cnblogs.com/CodeSPA/p/13407859.html
Copyright © 2011-2022 走看看