每日挠头算法题(十五)螺旋矩阵II
创始人
2024-04-17 03:34:20
0

“强大方能侠义”

------持续更新Blue Bridge杯入门系列算法实例--------

如果你也喜欢Java和算法,欢迎订阅专栏共同学习交流!

你的点赞、关注、评论、是我创作的动力!

-------希望我的文章对你有所帮助--------

 前言:最近可能有点忙,会放缓更新进度,但会尽量保证每周更新,持续学习才是王道。

一、题目描述

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

示例 1:

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

示例 2:

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

 解题思路:1、本题是将矩阵转换成螺旋矩阵,即要按照一定的顺序对矩阵进行位置的变换。

2、首先明确螺旋矩阵螺旋次数为n/2,即n为3时只能完成如示例中的一次螺旋。

3、建立一个起始点为start,从第一个矩阵元素开始,按从左到右,从右到下,从右到左,从下到上的顺序完成螺旋。

4、且注意从左到右、从上到下时元素坐标中的一个是递增的,另外则是递减的。

5、因此每次只要改变元素其中一个横或纵坐标即可。

6、当循环结束时,如果矩阵大小为奇数,则需要手动为最中间的元素赋值。

二、代码实现

class Solution {public int[][] generateMatrix(int n) {int res[][]=new int[n][n];int loop=0;int start=0;int count=1;int l,c;while(loop++ =loop;c--){res[l][c]=count++;}for(;l>=loop;l--){res[l][c]=count++;}start++;}if(n%2==1){res[start][start]=count;}return res;}
}

 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...