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

Leetcode100-春招-矩阵题类

螺旋矩阵
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]

思路:
1.遍历第一行,直到最右端,往下遍历列,直到最下端,往左遍历行,直到最左端,往上遍历……
2.实际上需要四个指针,来判断左右上下(left&right/ top&bottom)

List<Integer> result=new List<Integer>();
int top=0,bottom=matrix.length-1;
int left=0,right=matrix[0].length-1;
for(int i=left;i<=right;i++) result.add(List<Integer>(matrix[top][i]));
if(++top>bottom)break;
for(int i=top;i<=bottom;i++)result.add(List<Integer>(matrix[right][i]));
if(--right<left) break;

生命游戏:
主要理解找到周围8个邻居元素,可以设置-1,0,1
再通过newI=di+i;newJ=dj+j来实现查找,然后跳过自己:di0&&dj0
其他再根据题目写即可。

矩阵置0:
设置两个boolean数组来存储0元素的行和列
遍历后如果发现该元素为0,则将该元素的行和列值设为true(zerorow【i】=true)
再遍历一边,判断如果zr或者zc为0,将matrix【i】【j】=0。

相关文章:

  • 图论入门算法:拓扑排序(C++)
  • Copilot:Excel中的Python高级分析来了
  • C#控制台大小Console.SetWindowSize函数失效解决
  • AtCoder Beginner Contest 393(ABCDEF)
  • 苹果CMS站群插件的自动生成功能:提升网站流量的秘诀
  • DeepSeek R1 32B 本地部署实战
  • 解决“IndentationError: unexpected indent”错误
  • 【强化学习的数学原理】第07课-时序差分方法-笔记
  • 【Linux内核】进程管理(上)
  • DOS命令 setx 用法
  • MyBatis进阶
  • Spring的BeanFactory和FactoryBean有 什么不同
  • 基于矢量轨道角动量波的透射超表面设计
  • 基于deepseek api和openweather 天气API实现Function Calling技术讲解
  • pandas(11 分类数据和数据可视化)
  • 腿足机器人之八- 腿足机器人动力学
  • linux--关于linux文件IO(2) open、read、lseek、stat
  • matlab功率谱反演法
  • B. Longest Divisors Interval
  • Linux 基于共享内存的循环队列实现
  • 泽连斯基:俄代表团级别低,没人能做决定
  • 阿里上财年营收增6%,蒋凡:会积极投资,把更多淘宝用户转变成即时零售用户
  • 银行积分大幅贬值遭质疑,涉及工行、中行、农行等
  • 视频丨中国海警成功救助8名外籍遇险渔民,韩方向中方致谢
  • 欠债七十万后,一个乡镇驿站站长的中年心事
  • 乌拉圭前总统何塞·穆希卡去世