码农知识堂 - 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. }

     

  • 相关阅读:
    猿创征文|数据导入与预处理-第3章-pandas基础
    滴滴拟从美股退市;全球首台升降摄像头iPhone诞生;Twitter采取毒丸计划阻止马斯克的敌意收购|极客头条
    Lambda表达式:一篇文章带你通透
    StoneDB社区答疑第二期
    JS逆向实战23——某市wss URL加密+请求头+ws收发
    【Tomcat】查询端口号占用
    ubuntu 18.04 LTS交叉编译opencv 3.4.16并编译工程[全记录]
    vue 组件基础
    手机取证基础知识(一)
    steam deck科普、上手教程及模拟器配置指南
  • 原文地址:https://blog.csdn.net/m0_55278347/article/details/128178851
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号