Leetcode 中等:59. 螺旋矩阵II

【中等】力扣算法题解析LeetCode59:螺旋矩阵 II 要求生成一个n×n的螺旋矩阵,元素按顺时针顺序从1填充到n²。通过模拟填充过程实现:初始化四个边界(top、bottom、left、right),依次按顺时针方向填充外圈(左→右、上→下、右→左、下→上),每完成一圈后收缩边界,直到填满所有数字。时间复杂度O(n²),空间复杂度O(n²)。示例:n=3时输出[[1,2,3],[8,9,4],[7,6,5]]。 阅读详情

题目:螺旋矩阵II

  • 题号:59
  • 难度:中等
  • https://leetcode-cn.com/problems/spiral-matrix-ii/

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

示例1:

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

示例 2:

输入:n = 1
输出:[[1]]

提示:

  • 1 <= n <= 20

实现

C# 语言

public class Solution
{
    public int[][] GenerateMatrix(int n)
    {
        int[][] matrix = new int[n][];
        for (int i = 0; i < n; i++)
        {
            matrix[i] = new int[n];
        }

        int start = 0;//起始位置
        int end1 = n - 1;//最左边位置
        int end2 = n - 1;//最下边位置
        int count = 1;

        while (start < end1 && start < end2)
        {
            LeftToRight(start, end1, start, matrix, ref count);
            TopToBottom(start + 1, end2, end1, matrix, ref count);
            RightToLeft(end1 - 1, start, end2, matrix, ref count);
            BottomToTop(end2 - 1, start + 1, start, matrix, ref count);
            start++;
            end1 = n - 1 - start;
            end2 = n - 1 - start;
        }
        if (n%2 == 1)
        {
            matrix[start][start] = count;
        }
        return matrix;
    }

    private void LeftToRight(int start, int end, int rowIndex, int[][] matrix, ref int from)
    {
        for (int i = start; i <= end; i++)
        {
            matrix[rowIndex][i] = from;
            from++;
        }
    }

    private void TopToBottom(int start, int end, int colIndex, int[][] matrix, ref int from)
    {
        for (int i = start; i <= end; i++)
        {
            matrix[i][colIndex] = from;
            from++;
        }
    }

    private void RightToLeft(int start, int end, int rowIndex, int[][] matrix, ref int from)
    {
        for (int i = start; i >= end; i--)
        {
            matrix[rowIndex][i] = from;
            from++;
        }
    }

    private void BottomToTop(int start, int end, int colIndex, int[][] matrix, ref int from)
    {
        for (int i = start; i >= end; i--)
        {
            matrix[i][colIndex] = from;
            from++;
        }
    }
}

Python 语言

class Solution(object):
    def generateMatrix(self, n):
        """
        :type n: int
        :rtype: List[List[int]]
        """
        self.count = 1
        self.matrix = [[0 for i in range(n)] for i in range(n)]
        start, end1, end2 = 0, n - 1, n - 1
        while start < end1 and start < end2:
            self.LeftToRight(start, end1, start)
            self.TopToBottom(start + 1, end2, end1)
            self.RightToLeft(end1 - 1, start, end2)
            self.BottomToTop(end2 - 1, start + 1, start)
            start += 1
            end1 = n - 1 - start
            end2 = n - 1 - start
        if n % 2 == 1:
            self.matrix[start][start] = self.count
        return self.matrix

    def LeftToRight(self, start, end, rowIndex):
        for i in range(start, end + 1):
            self.matrix[rowIndex][i] = self.count
            self.count += 1

    def TopToBottom(self, start, end, colIndex):
        for i in range(start, end + 1):
            self.matrix[i][colIndex] = self.count
            self.count += 1

    def RightToLeft(self, start, end, rowIndex):
        for i in range(start, end - 1, -1):
            self.matrix[rowIndex][i] = self.count
            self.count += 1

    def BottomToTop(self, start, end, colIndex):
        for i in range(start, end - 1, -1):
            self.matrix[i][colIndex] = self.count
            self.count += 1
大模型-高通qnn基础 提供较低级别、高度可定制的统一API,通过单独的库加速所有AI加速器核心上的AI模型, 可以直接用于针对特定的加速器核心或从流行的运行时(包括Qualcomm Neural Processing SDK、TensorFlow Lite和ONNX运行时)委派工作负载。一个支持异构计算、系统级配置的一体化SDK,旨在将AI工作负载引导到我们平台上的所有加速器核心。为开发人员提供灵活性,包括核心间协作支持和其他高级功能。是一个为训练好的神经网络模型提供高级量化和压缩技术的库。 阅读详情

相关推荐

STM32H743内存告急?手把手教你用CubeMX+FMC外扩32MB SDRAM(W9825G6KH-6)

本文详细介绍了如何在STM32H743上使用CubeMX和FMC外扩32MB SDRAM(W9825G6KH-6),解决内存不足问题。从硬件选型、CubeMX配置到初始化代码实现,提供完整的配置教程和性能优化技巧,帮助开发者高效扩展内存,适用于图形界面和复杂算法处理。

weixin_30568591的博客 493

5.力扣59螺旋矩阵II(中等难度)

该题主要是边界处理上,保持一个区间,例如:左闭右开。再说细点就是:拿第一次循环举例,第一行的最右边给竖向操作,竖向的最后一个给最下边的开始操作。所有元素,且元素按顺时针顺序螺旋排列的。

WiNdY_S3的博客 188

FPGA串口通信----uart(一)

通过PLL锁相环IP的使用,可以输入时钟进行分频,倍频,也可以产生多路时钟输出信号。外部提供晶振的原因:①Fpga电路大多数需要时序分析②晶振在Fpga内部占空间大,所以放置于外部PCB板上Uart异步传输速率不能很快的原因:考虑到工程实际问题,假如时钟周期大(传输速率慢的话),采取到数据电平变化的边沿时刻的概率会小很多,这样数据也很准确,通常uart适用于2M.

mvpkuku的博客 969

Leetcode—59. 螺旋矩阵 II【中等】

Leetcode—59. 螺旋矩阵 II【中等】

Atticus的博客 498

高速接口电平标准互连设计:LVPECL、PECL与LVDS的实战解析

本文深入解析了LVPECL、PECL与LVDS三种高速接口电平标准的互连设计实战。针对信号共模电压、阻抗匹配等核心差异,详细对比了直流耦合与交流耦合两种主流方案,并提供了电阻网络计算、布局布线要点及光模块等特殊场景下的选型建议,帮助工程师解决高速信号间的“翻译”难题,确保信号完整性。

weixin_29198045的博客 535

SDM量化噪声等效到PLL输出的传递函数推导

在历年文章或书本中少见SDM量化噪声等效到PLL输出的传递函数推导。需了解SDM量化噪声的本质,配合欧拉方程简化,并将Z域转化成S域。最终结合断环处等效到PLL输出的传递函数,方可完成。

u010486560的博客 1406

LeetCode-59、螺旋矩阵 II-中等

LeetCode-59、螺旋矩阵 II-中等 给定一个正整数n,生成一个包含 1 到n2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 代码: class Solution: def generateMatrix(self, n: int) -...

clover_my的博客 132

SillyTavern 向量存储配置踩坑记:从卡死到本地部署 Ollama 跑通

用此命令看到镜像就算成功。

qq_62483451的博客 1259

leetcode-59. 螺旋矩阵 II,难度:中等

概述 今天刷leetcode的时候发现一个很巧妙的题解(点击此处转到原作者解答),现结合本人理解将解题思路分享给大家~ 题目 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 思路 1.初始化一个n*n的二维数组,用户规定n的取值 2.将...

技术宇宙 455

【SpringBoot 4.x 第29节】Spring Security 7 入门:先理解认证和授权!

🏆 本文收录于 《滚雪球学 Spring Boot 4.x》 专栏。本专栏面向 有一定 Java 基础,但尚未系统学习 Spring Boot 的读者,采用“滚雪球式学习法”:先跑通、再理解、再重构、再上线,带你从第一个 Hello API 开始,逐步完成一个可部署、可监控、可扩展的后端项目。

**My Coding Family** 551

FPGA 学习笔记:解决FPGA程序固化重新上电程序不运行的问题

FPGA 学习笔记:解决FPGA程序固化重新上电程序不运行的问题

坚韧与专注 1万+

java leetcode之[中等]59. 螺旋矩阵 II

题目的链接在这里:https://leetcode-cn.com/problems/spiral-matrix-ii/ 目录题目大意一、示意图二、解题思路正常逻辑 题目大意 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 一、示意图 二、解题思路 正常逻辑 正常逻辑 代码如下: class Solution { public int[][] generateMatrix(int n) { //四

wzw的博客 470

从 SM30 到 Fiori:在 SAP BTP ABAP Environment 里创建 Business Configuration 配置维护对象的完整路径

摘要 在SAP BTP的ABAP环境中,传统SAP GUI和SM30配置方式被Business Configuration (BC)替代。BC通过Fiori应用维护配置,支持传输和权限控制。配置表需满足可维护性条件,如允许数据维护、包含技术字段等。通过ADT生成Maintenance Object和Transport Object,实现配置发布与治理。权限管理需创建IAM App和Business Catalog,确保配置可维护。BC在云端延续了可控、可追溯、可发布的治理原则。 (字数:150)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 241

【LeetCode】第59题——螺旋矩阵II(难度:中等)

【LeetCode】第59题——螺旋矩阵II(难度:中等)题目描述解题思路代码详解注意点 题目描述 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]] 示例 2: 输入:n = 1 输出:[[1]] 提示:1 <= n <= 20 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/

Se7en_Dayz的博客 376

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

leetcode 59. 螺旋矩阵 II 中等

所有元素,且元素按顺时针顺序螺旋排列的。

2401_88085478的博客 259

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LeetCode_螺旋遍历_中等_59.螺旋矩阵 II

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

代码星辰的博客 409

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LeetCode-59螺旋矩阵II-中等

LeetCode-59螺旋矩阵II-中等

wxy 569

LeetCode 59. 螺旋矩阵 II【数组,模拟】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。

memcpy0的博客 236

LeetCode 59. 螺旋矩阵 II [难度:中等] C语言

模拟过程

鸿雁丨红豆灬自学计算机学习记录 387

LeetCode——59. 螺旋矩阵 II(Spiral Matrix II)[中等]——分析及代码(Java)

LeetCode——59. 螺旋矩阵 II[Spiral Matrix II][中等]——分析及代码[Java]一、题目二、分析及代码1. 逐层遍历(1)思路(2)代码(3)结果三、其他 一、题目 给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]] 示例 2: 输入:n = 1 输出:[[1]] 提示: 1 <= n <=

江南土豆的博客 272

leetcode59. 螺旋矩阵 II(中等)

思路:模拟 具体思路:如果遇到边缘或者遇到之前访问过的改变方向

zhangjiaji111的博客 213

LeetCode 54. 螺旋矩阵 && 59. 螺旋矩阵 II(中等、数组)day24

54. 螺旋矩阵: 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:[1,2,3,4,8,12,11,10,9,5,6,7] 提示: m == matrix.length n == matrix[i].length 1 <=

qq_43751200的博客 507

0模拟/数组中等 LeetCode59. 螺旋矩阵 II NC210 螺旋矩阵(二)

59. 螺旋矩阵 II 描述 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 分析 模拟螺旋遍历数组,和54. 螺旋矩阵是一样的。 设定上下左右的边界变量,按照上行、右列、下行、左列的顺序遍历数组。 每遍历一次,对相应的行、列边界变量缩进一次,直到最后up大于down,left大于right。 class Solution { public int[][] generateMatrix(int n) {

31楼下小黑的博客 399

【leetcode】59. 螺旋矩阵 II(spiral-matrix-ii)(模拟)[中等]

链接 https://leetcode-cn.com/problems/spiral-matrix-ii/ 耗时 解题:7 min 题解:11 min 题意 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 提示: 1 <= n <= 20 思路 和 【leetcode】54. 螺旋矩阵(spiral-matrix)(模拟)[中等] 的思路完全相同,两题的区别基本只有把 54 的输入变成的输出,然后矩阵还简化成

Krone_的博客 271

【LeetCode-中等】59.螺旋矩阵II - 二维数组

【LeetCode-中等】59.螺旋矩阵II - 二维数组

ASDF的博客 427

【LeetCode-中等题】59. 螺旋矩阵 II

定义四个边界条件,每转一圈,把数值填进去,然后缩小一圈,直到不满足条件位置。

weixin_45618869的博客 336
上一篇: Leetcode 中等:55. 跳跃游戏
下一篇: Leetcode 中等:61. 旋转链表
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青少年编程小助手_Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值