首页 > 其他分享 >59. 螺旋矩阵 II

59. 螺旋矩阵 II

时间:2024-12-18 19:11:25浏览次数:6  
标签:down 遍历 59 int 矩阵 up II left

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

示例 1:
image

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

示例 2:

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

思路

54. 螺旋矩阵

  1. 边界控制

    :我们使用四个变量来控制当前遍历的边界:

    • up: 当前遍历的最上面一行。
    • down: 当前遍历的最下面一行。
    • left: 当前遍历的最左边一列。
    • right: 当前遍历的最右边一列。
  2. 螺旋遍历:我们按顺时针方向,从左到右、从上到下、从右到左、从下到上 依次遍历当前边界范围内的矩阵元素,并更新边界值。直到所有元素都被遍历。

  3. 使用额外的一个变量 index,填充结果矩阵。

class Solution {
    public int[][] generateMatrix(int n) {
        int[][] res = new int[n][n];
        int up = 0, down = n-1, left = 0, right = n-1;
        int index = 1;
        while(true){
            for(int i = left; i <= right; i++){
                res[up][i] = index++;
            }
            if(++up > down){
                break;
            }
            for(int i = up; i <= down; i++){
                res[i][right] = index++;
            }
            if(--right < left){
                break;
            }
            for(int i = right; i >= left; i--){
                res[down][i] = index++;
            }
            if(--down < up){
                break;
            }
            for(int i = down; i >= up; i--){
                res[i][left] = index++;
            }
            if(++left > right){
                break;
            }
        }
        return res;
    }
}

标签:down,遍历,59,int,矩阵,up,II,left
From: https://www.cnblogs.com/drunkerl/p/18615690

相关文章

  • 在IIS部署cesium用的倾斜摄影3dtiles服务注意事项(备忘)
    1、将地形或倾斜摄影切片拷贝到IIS服务上,需要添加相应文件的MIME类型(如果缺少自己模型服务的数据类型,直接按扩展名添加,一般都使用application/octet-stream) .json   application/json .terrain  application/octet-stream.b3dm->application/octet-stream.pnts->->a......
  • Springboot家庭财务管理系统596n0(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表家庭成员,收入信息,支出信息,收入分类,支出分类,收入统计,支出统计,理财产品,产品购买,理财用户,家庭预算,财务健康开题报告内容一、研究背景与意义随着现代社......
  • C10-8 SQL注入II + XSS练习 I
    情境参加了培训的第八次课,涉及到了SQL宽字节注入,从MySQL注入到GetShell,SQL注入的基本绕过手法,SQL注入防御,SQLmap的使用;XSS基本概念和原理的介绍(包括3种XSS及其手动测试).这里是第八课的作业题,及我的解答.此次作业宽字节注入,需要使用到Pikachu靶场.该靶场......
  • 基础二维数组应用——蛇形矩阵
    蛇形矩阵是一个n*n的矩阵,将整数1到n*n按照蛇形的顺序装入一个n*n的蛇形矩阵中,如样例所示分别为5阶和10阶蛇形矩阵。输入格式:只有一行,为一个整数n,代表蛇形矩阵的阶数,n的范围是1—100。输出格式:共n行,为蛇形矩阵。每行的每个元素用空格分隔,注意最后一个数的后面为换行符。......
  • 54. 螺旋矩阵
    螺旋矩阵给你一个m行n列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例2:输入: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]思路边界......
  • 力扣80. 删除有序数组中的重复项 II
    给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用O(1)额外空间的条件下完成。示例1:输入:nums=[1,1,1,2,2,3]输出:5,nums=......
  • 73. 矩阵置零
    矩阵置零给定一个mxn的矩阵,如果一个元素为0,则将其所在行和列的所有元素都设为0。请使用原地算法。实例一:输入:matrix=[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]实例二:输入:matrix=[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,......
  • 鼠标 芯片bcm5974 linux驱动程序
    /*AppleUSBBCM5974(MacbookAirandPenrynMacbookPro)multitouchdriverThisprogramisfreesoftware;youcanredistributeitand/ormodifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedbytheFreeSoftwareFoundation;......
  • 安装iis bat命令
    @rem===forwin2022,2019,2016,2012r2&Win11/Win101607+===dism.exe/online/NoRestart/enable-feature/all/featurename:IIS-ASPNET45/featurename:WCF-HTTP-Activation45/featurename:IIS-HttpRedirect@rem非必须,但开启这些模块可以提高U8性能dism.exe/online......
  • FBX福币交易所恒指低开0.59%,科网股普跌, 美团续跌1.69%
    本周二(12月17日)港股低开,恒生指数下跌0.59%,国企指数下跌0.53%,恒生科技指数下跌0.61%,红筹指数下跌0.10%。FBX福币凭借用户友好的界面和对透明度的承诺,迅速在加密货币市场中崭露头角,成为广大用户信赖的平台。 科网股普跌,美团-W续跌1.69%,此前已录得两连跌,累跌超5%;百度集团-S......