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

Rust 力扣 - 59. 螺旋矩阵 II

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题目链接

题目描述

在这里插入图片描述

题解思路

使用一个全局变量current记录当前遍历到的元素的值

我们只需要一圈一圈的从外向内遍历矩阵,每一圈遍历顺序为上边、右边、下边、左边,每遍历完一个元素后current++

我们需要注意的是如果上边与下边重合或者是右边与左边重合,我们只需要遍历上边、右边即可

题解代码

impl Solution {pub fn generate_matrix(n: i32) -> Vec<Vec<i32>> {let mut ans = vec![vec![0; n as usize]; n as usize];let (mut t, mut b, mut l, mut r) = (0usize, n as usize - 1, 0usize, n as usize - 1);let mut current = 1;// 从外圈向内圈遍历while l <= r && t <= b {// 上边 从左到右for i in l..=r {ans[t][i] = current;current += 1;}// 右边 从上到下for i in (t + 1)..=b {ans[i][r] = current;current += 1;}if l < r && t < b {// 下边 从右到左for i in ((l + 1)..r).rev() {ans[b][i] = current;current += 1;}// 左边 从下到上for i in ((t + 1)..=b).rev() {ans[i][l] = current;current += 1;}}l += 1;if r != 0 {r -= 1;}t += 1;if b != 0 {b -= 1;}}ans}
}

题目链接

https://leetcode.cn/problems/spiral-matrix-ii/

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

相关文章:

  • 2.4w字 —TS入门教程
  • java: 未结束的字符文字 报错及解决:将编码全部改为UTF-8或者GBK
  • Android平台RTSP转RTMP推送之采集麦克风音频转发
  • 认证鉴权框架之—sa-token
  • Spring源码(十一):Spring MVC之DispatchServlet
  • gitbash简单操作
  • pnpm install安装element-plus的版本跟package.json指定的版本不一样
  • Java线程池的核心内容详解
  • 学习笔记——三小时玩转JQuery
  • word试题转excel(最简单的办法,无格式要求)
  • 基于web的中小学成绩管理系统的设计与实现
  • Conmi的正确答案——在Kibana中进入Elasticsearch的索引管理页面
  • 【JavaEE】【多线程】进阶知识
  • LeetCode100之三数之和(15)--Java
  • 并发编程三大特性--可见性和有序性
  • Android 使用ninja加速编译的方法
  • 《Java 实现选择排序:原理剖析与代码详解》
  • 数据结构之双链表——考研笔记
  • Django视图写法
  • 单臂路由实现不同VLAN之间设备通信
  • Linux·进程控制(system V)
  • 华为云Stack名词解释
  • YoloV9改进策略:上采样改进|CARAFE,轻量级上采样|即插即用|附改进方法+代码
  • 【C++】多态的语法与底层原理
  • RTP和RTCP的详细介绍及其C代码示例
  • 深入浅出了解AI教育发展与落地应用情况
  • Hive数据库操作语法
  • 容器架构-Docker的成长之路
  • 关于我、重生到500年前凭借C语言改变世界科技vlog.14——常见C语言算法
  • 简记Vue3(三)—— ref、props、生命周期、hooks