码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 牛客网——蛇形数组


    ​
    ​

    活动地址:CSDN21天学习挑战赛

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
    想系统/深入学习某技术知识点…
    一个人摸索学习很难坚持,想组团高效学习…
    想写博客但无从下手,急需写作干货注入能量…
    热爱写作,愿意让自己成为更好的人…

    …
    欢迎参与CSDN学习挑战赛,成为更好的自己,请参考活动中各位优质专栏博主的免费高质量专栏资源(这部分优质资源是活动限时免费开放喔~),按照自身的学习领域和学习进度学习并记录自己的学习过程。您可以从以下3个方面任选其一着手(不强制),或者按照自己的理解发布专栏学习作品,参考如下:

    **

    目录

    前言

    一、蛇形数组

    描述

    输入描述:

    输出描述:

     二、分析问题

    三、代码如下 

     总结


    前言

    今天给大家安排个高难度——蛇形数组。


    一、蛇形数组

    题目来源:

    蛇形矩阵_牛客题霸_牛客网

    描述

    给你一个整数n,输出n∗n的蛇形矩阵。

    输入描述:

    输入一行,包含一个整数n

    输出描述:

    输出n行,每行包含n个正整数,通过空格分隔。

    1<=n<=1000

    不知道有没有伙伴和我一样,看到这东西人都傻了,有规律,但不多。


     二、分析问题

    我们不难发现,它是按照斜线,蛇形逐渐递增的,但是要找出它递增的条件还是有点难,我们先慢慢分析,我们先分析斜线,可以发现 行=列,数字大小一样,然后蛇形走位,是增减的问题了。

    附上一张大佬分析图:


    三、代码如下 

    1. #include <iostream>
    2. using namespace std;
    3. void snack(int n)
    4. {
    5. int num = 1;
    6. int k = 0;
    7. int a[n][n];
    8. while(k < n)
    9. {
    10. for(int i = 0; i <= k; ++i)
    11. {
    12. if (k % 2 == 0)
    13. {
    14. a[k-i][i] = num++;
    15. }else
    16. {
    17. a[i][k-i] = num++;
    18. }
    19. }
    20. ++k;
    21. }
    22. int flag = 1;
    23. while(k < 2*n - 1)
    24. {
    25. for(int i = n-1;i>=flag;--i)
    26. {
    27. if(k%2 == 0)
    28. {
    29. a[k-i][i] = num++;
    30. }
    31. else
    32. {
    33. a[i][k-i] = num++;
    34. }
    35. }
    36. flag++;
    37. ++k;
    38. }
    39. for(int i = 0; i < n; ++i)
    40. {
    41. for(int j = 0; j< n; ++j)
    42. {
    43. cout<<a[i][j]<<" ";
    44. }
    45. cout<<endl;
    46. }
    47. }
    48. int main()
    49. {
    50. int n;
    51. cin >>n;
    52. snack(n);
    53. return 0;
    54. }

     


     总结

    今天和大家简单学习了一下蛇形数组,比较难,大家仔细琢磨会有所帮助的,希望可以共同进步哈~

  • 相关阅读:
    【有营养的算法笔记】快速排序
    Vue3 + TypeScript
    C++ STL
    java-php-python-ssm-校园网上跳蚤书市系统-计算机毕业设计
    小学生加减乘除闯关运算练习流量主微信小程序开发
    猿创征文 |【算法面试入门必刷】动态规划-线性dp(一)
    北京大学计算机考研经验分享汇总
    【Verilog基础】【计算机体系结构】cache的分配策略和更新策略
    交欣科技:智慧交通企业如何用一个CRM项目撬动数字化转型
    SPA项目开发之登录注册
  • 原文地址:https://blog.csdn.net/m0_72503424/article/details/126414587
  • 最新文章
  • 【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号