当前位置: 首页 > news >正文

Leecode螺旋矩阵 II59

 59.螺旋矩阵II

题目建议:  本题关键还是在转圈的逻辑,在二分搜索中提到的区间定义,在这里又用上了。 

题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

文章讲解:代码随想录

视频讲解:一入循环深似海 | LeetCode:59.螺旋矩阵II_哔哩哔哩_bilibili

class Solution {
public:vector<vector<int>> generateMatrix(int n) {vector<vector<int>> matrix(n,vector<int>(n));//这种matrix的写法不熟悉int top=0;int bottom=n-1;int right=n-1;int left=0;int num=1;//num从1到n^2while(left<=right && top<=bottom){//这里的循环调节我先乘了num<=num*num了,其实可以直接携程上下左右界for(int i=left;i<=right;i++){matrix[top][i]=num++;}for(int i=top+1;i<=bottom;i++){matrix[i][right]=num++;}if(right>left && bottom>top){for(int i=right-1;i>left;i--){matrix[bottom][i]=num++;}for(int i=bottom;i>top;i--){matrix[i][left]=num++;}}left++;right--;top++;bottom--;}return matrix;}
};

2023/08/10 19:27 这一题乍一看还是没有思路的;

C老师给的思路:

1、初始化 n*n 的矩阵;

2、定义四个边界:right、bottom、left、top。它们分别代码我们可以填充的矩阵的四个边界;

3、使用一个变量 num,从1开始到n^2;

4、循环中,从左往右填充顶行、从上往下填充右列、从右往左填充底行、从下往上填充左列;

5、每填充完一个方向,更新相应的边界;

6、继续填充直到位置填满;

边界控制这一块还是不够熟悉 2023/08/10 20:22

vcetor<vector<int>> matrix(n,vetor<int>(n));//这种matrix的写法不熟悉

2023/08/10 20:29

卡哥实现的是四个边界分的很清楚的边界限定,另外,循环调节卡哥使用的是轮次;

http://www.lryc.cn/news/117986.html

相关文章:

  • echarts 横向柱状图
  • Vue3 —— to 全家桶及源码学习
  • (第三篇) ansible-kubeadm在线安装高可以用集群()
  • flutter开发实战-颜色Color与16进制转换
  • Linux(进程地址空间)
  • VLAN监控及常见问题排查
  • PromQL实现Actuator获取的JVM指标的Full GC次数监控
  • 3.正则表达式
  • 【学习FreeRTOS】第3章——FreeRTOS移植及配置文件
  • Java算法_ LRU 缓存(LeetCode_Hot100)
  • Hugging Face 的文本生成和大语言模型的开源生态
  • Docker Compose用法详解
  • 分布式链路追踪概述
  • css中的var函数
  • 第五次作业 运维高级 构建 LVS-DR 集群和配置nginx负载均衡
  • neo4j电影库-关系查询
  • 2020/10-2023/7 Notes
  • 在UOS系统中管理ORACLE数据库
  • 以http_proxy和ajp_proxy方式整合apache和tomcat(动静分离)
  • 【pinia】Pinia入门和基本使用:
  • Linux 文件系统(一)系统目录
  • 『CV学习笔记』Opencv和PIL Image以及base64编码互相转化
  • 行业追踪,2023-08-07
  • CSRF 攻击和 XSS 攻击分别代表什么?如何防范?
  • RabbitMQ: 详解、使用教程和示例
  • redis NOAUTH Authentication required 可能不是密码问题
  • 动态规划解0-1背包问题(超详细理解)
  • 有哪些可能引起前端安全的问题?
  • 【Unity实战100例】用户头像圆形遮罩使用Shader不用Mask组件
  • arm-linux-gnueabihf-g++ gcc编译、优化命令 汇总