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

力扣54:螺旋矩阵

力扣54:螺旋矩阵

  • 题目
  • 思路
  • 代码

题目

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
在这里插入图片描述

思路

思路很简单创建一个二维数组然后按照箭头所示的顺序一层一层的给二维数组相应的位置赋值即可。难点是我们是一层一层的赋值也就是先把最外层一圈的数赋值,再来内层一圈的,所以我们需要定义左边界右边界上边界和下边界四个值,每完成一行或一列的赋值就需要将对应的边界进行++或–。

代码

class Solution {
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {vector<int> v;int m = matrix.size();    // 行int n = matrix[0].size(); // 列int left = 0;             // 最左列int right = n - 1;        // 最右列int top = 0;              // 顶行int bottom = m - 1;       // 底行while (left <= right && top <= bottom) {// 从左到右for (int i = left; i <= right; i++) {// 列数在变v.push_back(matrix[top][i]);}top++;// 从上到下for (int i = top; i <= bottom; i++) {// 行数在变v.push_back(matrix[i][right]);}right--;// 从右往左if (top <= bottom) {for (int i = right; i >= left; i--) {// 列数在变v.push_back(matrix[bottom][i]);}}bottom--;// 从下往上if (left <= right) {for (int i = bottom; i >= top; i--) {// 行数在变v.push_back(matrix[i][left]);}}left++;}return v;}
};
http://www.xdnf.cn/news/1211797.html

相关文章:

  • 疯狂星期四文案网第24天运营日记
  • 永磁同步电机FOC控制----电流采样的实现
  • 【Lambda】flatMap使用案例
  • 字节跳动“扣子”(Coze)开源:AI智能体生态的技术革命
  • 从结构到交互:HTML5进阶开发全解析——语义化标签、Canvas绘图与表单设计实战
  • 微软OpenAI展开深入谈判
  • DIV 指令概述
  • 视觉语言模型在视觉任务上的研究综述
  • HTML第一次作业
  • JavaWeb 进阶:Vue.js 与 Spring Boot 全栈开发实战(Java 开发者视角)
  • 【数据结构初阶】--二叉树(四)
  • Prometheus-1--什么是Prometheus?
  • Docker网络技术深度研究与实战手册
  • C++类中动态内存分配注意手册
  • 基于springboot的零食商城的设计与实现/零食销售系统的设计与实现
  • 每日学习笔记记录(分享更新版-凌乱)
  • LeetCode 11 - 盛最多水的容器
  • Vue.js 指令系统完全指南:深入理解 v- 指令
  • python的进程、线程、锁
  • DNS污染与劫持
  • Wndows Docker Desktop-Unexpected WSL error错误
  • 项目历程—生命数组游戏(两版本)
  • Vulkan入门教程 | 第二部分:创建实例
  • “非参数化”大语言模型与RAG的关系?
  • 并查集介绍及典型应用和编程题
  • [Linux入门] Linux 部署本地 APT 仓库及 NFS 共享服务全攻略
  • ITIL 4 高速IT:解耦架构——构建快速迭代的技术基座
  • 【LeetCode 随笔】
  • centos7安装Docker
  • 基于三台主机搭建 Web 服务环境:Nginx、NFS 与 DNS 配置全流程