码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 每日挠头算法题(十五)螺旋矩阵II


    “强大方能侠义”

    ------持续更新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、当循环结束时,如果矩阵大小为奇数,则需要手动为最中间的元素赋值。

    二、代码实现

    1. class Solution {
    2. public int[][] generateMatrix(int n) {
    3. int res[][]=new int[n][n];
    4. int loop=0;
    5. int start=0;
    6. int count=1;
    7. int l,c;
    8. while(loop++ 2){
    9. for(c=start;c
    10. res[start][c]=count++;
    11. }
    12. for(l=start;l
    13. res[l][c]=count++;
    14. }
    15. for(;c>=loop;c--){
    16. res[l][c]=count++;
    17. }
    18. for(;l>=loop;l--){
    19. res[l][c]=count++;
    20. }
    21. start++;
    22. }
    23. if(n%2==1){
    24. res[start][start]=count;
    25. }
    26. return res;
    27. }
    28. }

     

  • 相关阅读:
    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
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号