Blage's Coding Blage's Coding
Home
算法
  • 手写Spring
  • SSM
  • SpringBoot
  • JavaWeb
  • JAVA基础
  • 容器
  • Netty

    • IO模型
    • Netty初级
    • Netty原理
  • JVM
  • JUC
  • Redis基础
  • 源码分析
  • 实战应用
  • 单机缓存
  • MySQL

    • 基础部分
    • 实战与处理方案
    • 面试
  • ORM框架

    • Mybatis
    • Mybatis_Plus
  • SpringCloudAlibaba
  • MQ消息队列
  • Nginx
  • Elasticsearch
  • Gateway
  • Xxl-job
  • Feign
  • Eureka
  • 面试
  • 工具
  • 项目
  • 关于
🌏本站
🧸GitHub (opens new window)
Home
算法
  • 手写Spring
  • SSM
  • SpringBoot
  • JavaWeb
  • JAVA基础
  • 容器
  • Netty

    • IO模型
    • Netty初级
    • Netty原理
  • JVM
  • JUC
  • Redis基础
  • 源码分析
  • 实战应用
  • 单机缓存
  • MySQL

    • 基础部分
    • 实战与处理方案
    • 面试
  • ORM框架

    • Mybatis
    • Mybatis_Plus
  • SpringCloudAlibaba
  • MQ消息队列
  • Nginx
  • Elasticsearch
  • Gateway
  • Xxl-job
  • Feign
  • Eureka
  • 面试
  • 工具
  • 项目
  • 关于
🌏本站
🧸GitHub (opens new window)
  • 数组

    • 搜索

    • 二分查找

    • 排序

    • 边界判断

      • 54.螺旋矩阵
      • 498.对角线遍历
      • 59.螺旋矩阵Ⅱ
      • 48. 旋转图像
      • 6425. 找到最长的半重复子字符串
      • 135. 分发糖果
      • 715. Range 模块
      • 剑指offer13
    • 双指针法

    • 连续子数组

    • 差分数组

    • 模拟

    • 区间问题

  • 链表

  • 字符串

  • 二叉树

  • 动态规划

  • 深搜回溯

  • 数学贪心

  • 堆栈队列

  • 前缀和

  • 算法设计

  • 位运算

  • WA

  • 算法
  • 数组
  • 边界判断
phan
2023-05-16

59.螺旋矩阵Ⅱ

# 59.螺旋矩阵Ⅱ

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]]

  1. 首先定义四个变量表示上下左右四个边界,矩阵上界为low,下界为high。生成时有两种思路,一种是从外层生成到内层,每次生成一层;另一种是每次在一个方向上生成,到头后开始下一个方向。按照一层层来生成的话,往右方向生成碰到右边界后,下边界加一,并且把当前坐标置为往下遍历生成的第一个坐标(i坐标加一,j坐标减一),其他几个方向同理。注意能否进入右方向生成的判断条件:
  • 除了j坐标没有碰到右边界外,还需要用已生成元素数量来约束(只要没生成满,那么右和下方向只要对应坐标没触碰到边界,坐标肯定是合法的;否则仅限制一个坐标,另一个方向的坐标可能已经越界导致生成地址非法),if(ele<n*n+1&&j<right)。
  • 也可以直接限制当前两个坐标是否合法来判断能否继续生成,if(i>low&&i<high&&j>left&&j<right)。
编辑 (opens new window)
#Leetcode#边界判断
上次更新: 2023/12/15, 15:49:57
498.对角线遍历
48. 旋转图像

← 498.对角线遍历 48. 旋转图像→

Theme by Vdoing | Copyright © 2023-2024 blageCoder
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式