“强大方能侠义”
------持续更新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++
2){ -
- for(c=start;c
- res[start][c]=count++;
- }
- for(l=start;l
- res[l][c]=count++;
- }
- for(;c>=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;
-
- }
- }
-
相关阅读:
echarts画各种形状水波图
【开发心得】Java xsd文件转JavaBean
2022年全球市场抹茶巧克力总体规模、主要生产商、主要地区、产品和应用细分研究报告
springboot+vue+elementUI 基于Springboot的智慧养老平台#毕业设计
【TSP问题】基于Hopfield神经网络求解旅行商问题附Matlab代码
主备延迟的问题
“华为杯”研究生数学建模竞赛2019年-【华为杯】D题:基于改进 K-means 聚类和隐马尔可夫链的汽车行驶工况构建(附获奖论文和MATLAB代码实现)
JVM(java虚拟机 详解三个主要的话题:1.JVM 中的内存区域划分2.JVM 的类加载机制3.JVM 中的垃圾回收算法)
prompt第五讲-fewshot-selector
基于Eigen的椭圆拟合
-
原文地址:https://blog.csdn.net/m0_55278347/article/details/128178851