leetcode 59. Spiral Matrix II(螺旋矩阵II)

Python输出螺旋形数组 Python输出螺旋形数组思路 思路 1、先初始化一个二维数组,从外向内,一圈圈填充。 2、每一圈由每组3个,共4组数构成。确定起点、数量、和方向即可用4个循环完成填充。 3、简化思路:循环第1组(蓝色),相应可以由步长3确定后面3组的位置,即循环1次即可。 按上图标数顺序依次填充即可完成一圈。 代码如下: #!/usr/bin/python3 # -*- coding: utf-8 _*_ ... 阅读详情

Given a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

Example:

Input: 3
Output:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]

给出一个数字n,让输出一个二维数组,元素是从1~n2,而且要是螺旋方式

思路:
从1~n2很简单,主要是螺旋方式,螺旋方式可以参考54题,还是两条边两条边地输出,先是第一行和最后一列,然后
迂回最后一行和第一列,如此循环。

注意每个while (row <= endRow && col <= endCol) {结束时,row都是多一行或者少一行的,
而且为了避免位置重复,列也是要+1或者-1

//0ms
    public int[][] generateMatrix(int n) {
        int[][] result = new int[n][n];
        
        int element = 1;
        int lastE = n * n;
        
        int startRow = 0;
        int endRow = n - 1;
        int startCol = 0;
        int endCol = n - 1;
        
        
        int row = startRow;
        int col = startCol;
        
        while (element <= lastE) {
            while (row <= endRow && col <= endCol) {
                result[row][col] = element;
                if (col == endCol) {
                    row ++;
                } else {
                    col ++;
                }
                element ++;
            }
            row --;
            col --;
            startRow ++;
            endCol --;
            
            while (row >= startRow && col >= startCol) {
                result[row][col] = element;
                if (col == startCol) {
                    row --;
                } else {
                    col --;
                }
                element ++;
            }
            row ++;
            col ++;
            endRow --;
            startCol ++;
            
        }
        return result;
    }

另一版本

    public int[][] generateMatrix(int n) {
        int[][] res = new int[n][n];
        int sR = 0;
        int eR = n - 1;
        int sC = 0;
        int eC = n - 1;
        int row = 0;
        int col = 0;
        int i = 1;
            
        while(sR <= eR) {         
            if(row == sR) {
               while(col <= eC) {
                   res[row][col] = i ++;
                   col ++;
               }
               col = eC;
               row ++;
               while(row <= eR) {
                   res[row][col] = i ++;
                   row ++;
               }
                row = eR;
                col --;
                sR ++;
                eC --;
            }
            
            if(row == eR) {
                while(col >= sC) {
                    res[row][col] = i ++;
                    col --;
                }
                col = sC;
                row --;
                while(row >= sR) {
                    res[row][col] = i ++;
                    row --;
                }
                row =  sR;
                col ++;
                eR --;
                sC ++;
            }
        }
        return res;
    }

3

public int[][] generateMatrix(int n) {
    int[][] res = new int[n][n];
    int cnt = 1;

    int minR = 0;
    int maxR = n-1;
    int minC = 0;
    int maxC = n-1;
    int r = 0;
    int c = 0;

    while(minR <= maxR && minC <= maxC) {
        if(minR <= maxR && minC <= maxC) {
            while(c <= maxC) {
                res[r][c] = cnt++;
                c ++;
            }
            c = maxC;
            minR ++;
            r = minR;
            while(r <= maxR){
                res[r][c] = cnt++;
                r++;
            }
            r = maxR;
            maxC--;
            c = maxC;
        }
        if(minR <= maxR && minC <= maxC) {
            while(c >= minC) {
                res[r][c] = cnt++;
                c --;
            }
            c = minC;
            maxR --;
            r = maxR;
            while(r >= minR){
                res[r][c] = cnt++;
                r--;
            }
            r = minR;
            minC++;
            c = minC;
        }
    }
    return res;
}
微信小程序音视频通话(for硬件)授权与设备注册实战指南 本文详细介绍了微信小程序音视频通话(for硬件)组件的开发实践,涵盖授权流程、设备注册与VoIP插件集成。重点解析了如何通过服务端获取snTicket实现用户授权,确保硬件设备与微信端的音视频通话安全可靠,适用于智能门禁、话机等物联网场景。 阅读详情

相关推荐

WSL2 + Open3D点云可视化踩坑全记录:从GLFW报错到VcXsrv配置,一篇讲清所有‘坑’

本文详细解析了在WSL2环境中使用Open3D进行点云可视化时遇到的常见问题,特别是GLFW报错和VcXsrv配置问题。通过系统性的解决方案和高级配置技巧,帮助开发者彻底解决图形显示、驱动加载和库版本冲突等难题,实现高效的点云可视化。

weixin_30627341的博客 99

二维数组螺旋输出

如上图的二维数组,按照螺旋输出后 为 1

ssjjy的专栏 2082

Unity 常见问题 之 打包编译的报错 Unable to sign the application; please provide passwords!

Unity 常见问题 之 打包编译的报错 Unable to sign the application; please provide passwords! 目录 Unity 常见问题 之 打包编译的报错 Unable to sign the application; please provide passwords! 一、简单介绍 二、问题描述 三、原因分析 四、可能的解决方法 方法一:取消 Keystore 设置即可 方法二:重新添加 Keystore 相关设置 一...

仙魁XAN 1万+

算法笔记-螺旋输出二维数组

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

ydd_666的博客 1805

【Linux】实际项目应该如何完成?--安防监控系统项目的总结

到目前为止我也做个5、6个嵌入式项目,但以往都是从零开始自己做,也就是毫无计划,想到那里做那里,有想法就会去实现,就这样导致我碰到了很多坑,也消耗了我许多时间,当然,不是说这样不好,因为在其中我也得到了一个很好的锻炼与练习,但是这不适用于在工作中去这样做。...

修成真的博客 6724

【Seurat绘图进阶】从参数调优到美学定制:解锁DimPlot与FeaturePlot的隐藏技巧

本文深入探讨了Seurat包中DimPlot与FeaturePlot的进阶使用技巧,旨在解决单细胞数据可视化中的常见痛点。通过参数调优(如order、shuffle、raster)、颜色美学定制(使用RColorBrewer、viridis配色)以及性能优化(栅格化处理),并结合scCustomize包与patchwork排版,帮助用户将基础图表提升为信息清晰、可直接用于论文发表的出版级可视化结果。

lake5的博客 627

螺旋打印二维数组-java

题目: 螺旋打印二维数组。 解题思路: 问题点:怎么构建一个螺旋的二维数组 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 分析: 1、构建一个二维数组,按照顺时针的方向依次填入矩阵中1、2、3、4、5、6、7、8、9…… 问题拆分: 先搞最外面一层,再搞下一层,依次类推,直到...

九斤 1130

【Transformer 相关理论深入理解】注意力机制、自注意力机制、多头注意力机制、位置编码

transformer原理

qq_38253797的博客 2万+

螺旋打印二维数组(字节三面)

给定一个包含mxn个元素的矩阵(m行,n列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,3,6,9,8,7,4,5] package com.csu.marden; import java.util.ArrayList; import java.util.List; public class Demo2 { public static void main(St...

m0_37671741的博客 949

CUPED (Controlled-experiment using Pre-Experiment Data) 论文学习笔记

CUPED是一种用于提升A/B测试灵敏度的方差缩减技术。它通过利用实验前用户行为数据(协变量X)构建调整后的指标Y_cuped=Y-θ(X-E[X]),其中θ=Cov(Y,X)/Var(X)。这种方法能在保持处理效应估计无偏的前提下,将方差降低1-ρ²倍(ρ为前后指标相关性)。CUPED的核心优势在于:不改变平均处理效应的估计,但能显著提升统计功效,使得实验更容易检测到微小但真实的效应,同时减少所需样本量或实验周期。该技术特别适用于用户异质性大、指标方差高的场景。

pursuit的博客 2143

NE564锁相环FM解调电路设计:10.7MHz中频实测与3种失真优化方案

本文详细解析了NE564锁相环在10.7MHz中频FM解调电路中的设计与优化方案。通过分析锁相环技术基础、电路架构设计及典型失真问题,提供了3种有效的失真优化方法,包括限幅增强、VCO频偏补偿和环路滤波优化,显著提升解调性能。文章还涵盖了PCB布局要点和系统测试验证,为高频电子线路设计提供实用参考。

weixin_33314040的博客 349

Leetcode 59. Spiral Matrix II 螺旋矩阵 II

Leetcode 59. Spiral Matrix II 螺旋矩阵 II 标签: Leetcode 题目地址:https://leetcode-cn.com/problems/spiral-matrix-ii/ 题目描述 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, ...

CoderWangSon 219

支付系统保证可靠性的秘诀 ----- 订单的补偿和补单

文章目录WHAT? 前言WHY? 为什么要用多级缓存?HOW 怎么做?方案 版本1:数据库存储专线配置通过优先级进行动态上下线方案 版本1 劣势:方案 版本2 :本地缓存替代数据库方案 版本2 劣势:方案 版本3:分布式缓存做自动补偿方案 版本3 总结:Where 分布式多级缓存还能用在哪些地方?总结 WHAT? 前言 刚入职场的时候觉得支付宝等第三方支付系统好强大,要保证这么多的交易不能错,也不能重复还要保证正确的扣钱,直到后面接触订单系统以及第三方支付公司的核心交易系统后才真正窥探到了支付系统的核心

boboaisisi的专栏 3534

LeetCode-Go 题解:59. Spiral Matrix II —— 用方向数组 + 访问标记实现螺旋矩阵生成

本文以 [LeetCode-Go](https://link.gitcode.com/i/b1b478bbe6ec49816f627f71d0fc8b62) 仓库中 [59. Spiral Matrix II](https://link.gitcode.com/i/20502b4aee55a8c3c6c376f07e7b9eda) 一题的官方题解为核心,讲解如何用 Go 语言通过"方向数组 + 访

gitblog_00050的博客 976

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

LeetCode:59. Spiral Matrix II 螺旋矩阵 II(C语言)

题目描述: 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/spiral-matrix-ii 著作权归领扣网络所有。商业转载请联系官...

C/C++攻城狮 520

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LeetCode | 59. 螺旋矩阵 II (Spiral Matrix II )

本文介绍了两种生成n×n螺旋矩阵的算法:方向模拟法和边界收缩法。方向模拟法通过定义方向数组控制填充路径,遇到边界或已填充位置时顺时针旋转方向,时间复杂度O(n²)。边界收缩法将矩阵视为层层嵌套结构,通过维护四个边界逐层填充,每层填充后边界向内收缩。两种方法均实现了O(1)空间复杂度,执行效率相近(0ms)。文章对比了两种实现的关键细节,包括循环变量取值、方向索引操作和边界移动逻辑,并提供了清晰的代码示例。该问题在LeetCode编号为59题,适用于1≤n≤20的情况。

Lynn0_Y的博客 1032

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LeetCode 59 Spiral Matrix II(螺旋矩阵II)(Array)

翻译给定一个整数n,生成一个矩阵,要求以螺旋状将1到n2n^2的元素填进其中。例如,给定n=3,你应该返回以下矩阵: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]原文Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral or

nomasp 7278

Leetcode: 59. Spiral Matrix II 螺旋矩阵II

Spiral Matrix II 螺旋矩阵II 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 方法一:模拟螺旋遍历 用left,right,up,down记录 class Solution { public: vecto...

Coding 250

LeetCode59 Spiral Matrix II 螺旋矩阵II

1. problem description Given a positive integer n, generate a square matrix filled with elements from 1 to n^2 in spiral order. Example: Input: 3 Output: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 2. s...

地山谦的博客 195

力扣(LeetCode)59. Spiral Matrix II(螺旋矩阵2)

/** * Return an array of arrays of size *returnSize. * The sizes of the arrays are returned as *returnColumnSizes array. * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free(). */ int** generateMatrix(int n, int

s_w_s_的博客 204

leetcode 59. Spiral Matrix II-螺旋矩阵|清晰思路

原题链接:59. Spiral Matrix II 【思路】 遍历图解如上图所示,n 分为偶数和奇数两种情况。当 n 为偶数时,最后一次遍历刚好添加完毕;当 n 为奇数时,最后还需要进行一次添加操作⑤ public class Solution { public int[][] generateMatrix(int n) { int[][] res = new

hdtopku 1969

Java描述 LeetCode,59. Spiral Matrix II 螺旋矩阵II

1-1:题目描述 Given a positive integer n, generate an n x n matrix filled with elements from 1 to n2 in spiral order. Example 1: Input: n = 3 Output: [[1,2,3],[8,9,4],[7,6,5]] Example 2: Input: n = 1 Output: [[1]] Constraints: 1 <= n <= 20 来源:力扣(LeetCo

人在江湖 501

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 ], [

a731604348的博客 487

【leetcode】#数组【Python】59. Spiral Matrix II螺旋矩阵 II

链接: https://leetcode-cn.com/problems/spiral-matrix-ii/ 题目: 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 我的解法:先给9,然后每次把矩阵顺时针旋转,顶部push...

风轻扬逍遥子的博客 499

leetcode 59. 螺旋矩阵 II(Spiral Matrix II)

目录 题目描述: 示例: 解法: 题目描述: 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 解法: class...

weixin_30678821的博客 105

leetcode59 spiral-matrix-ii螺旋矩阵二

## 59 spiral-matrix-ii ## https://leetcode-cn.com/problems/spiral-matrix-ii from pprint import pprint class Solution(object): def generateMatrix(self, n): if n <= 0: retu...

看清这个世界 178
上一篇: Side Window Filtering(CVPR 2019)阅读与实现
下一篇: leetcode 73. Set Matrix Zeroes
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

蓝羽飞鸟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值