LeetCode 54. 螺旋矩阵 (C++实现)

embedded/2024/12/25 0:20:20/

1. 题目描述

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

示例 1:

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]

示例 2:

输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
输出:[1,2,3,4,8,12,11,10,9,5,6,7]

2. 解题思路

首先定义左指针left、右指针right,上指针top,下指针bottom,然后从左到右,从上到下遍历,遇到边界的时候指针相应地变化。

3. 代码实现

class Solution {
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {int left = 0;int top = 0;int right = matrix[0].size()-1;int bottom = matrix.size()-1;vector<int> ans;while(left <= right || top <= bottom){for (int i = left; i <= right; i++){ans.push_back(matrix[top][i]);}top++;if (top > bottom) break;for (int i = top; i <= bottom; i++){ans.push_back(matrix[i][right]);}right--;if (right < left) break;for (int i = right; i >= left; i--){ans.push_back(matrix[bottom][i]);}bottom--;if (bottom < top) break;for (int i = bottom; i >= top; i--){ans.push_back(matrix[i][left]);}left++;if (left > right) break;}return ans;}
};

http://www.ppmy.cn/embedded/148476.html

相关文章

Jest 入门指南:从零开始编写 JavaScript 单元测试

前言 在前端开发中&#xff0c;单元测试已经成为确保代码质量和稳定性的关键步骤。Jest 作为由 Facebook 开发和维护的功能强大的 JavaScript 测试框架&#xff0c;以其易于配置、丰富的功能和开箱即用的特性&#xff0c;成为众多开发者的首选工具。本文旨在引导你从零开始&am…

12.12深度学习_CNN_项目实战

基于CNN的AnimalTriClassifier 关于项目实现的文档说明书&#xff0c;三个要素&#xff1a;数据、模型、训练 1、项目简介 关于项目的基本介绍。 本项目实现的是对猫科动物的划分&#xff0c;划分的物种有猫、狗、野生三种分类&#xff0c;属于小颗粒度分类 大颗粒度分类&…

React Router 深入指南:从入门到进阶

前言 随着单页面应用&#xff08;SPA&#xff09;的普及&#xff0c;前端路由成为开发中不可或缺的一部分&#xff0c;而 React Router 作为 React 官方推荐的路由库&#xff0c;提供了强大的功能和灵活性。本文将从基础到进阶&#xff0c;带你全面掌握 React Router。 一、初…

sqlite3,一个轻量级的 C++ 数据库库!

宝子们&#xff0c;今天咱来唠唠 sqlite3 这个超棒的轻量级 C 数据库库。它就像是一个小巧但功能齐全的“数据仓库”&#xff0c;能帮咱们轻松地存储、查询和管理数据&#xff0c;无论是开发小型的桌面应用&#xff0c;还是做一些简单的数据处理程序&#xff0c;它都能派上大用…

前端开发 之 12个鼠标交互特效上【附完整源码】

前端开发 之 12个鼠标交互特效上【附完整源码】 文章目录 前端开发 之 12个鼠标交互特效上【附完整源码】一&#xff1a;彩色空心爱心滑动特效1.效果展示2.HTML完整代码 二&#xff1a;彩色实心爱心滑动特效1.效果展示2.HTML完整代码 三&#xff1a;粒子连结特效1.效果展示2.HT…

大模型与呼叫中心结合的呼入机器人系统

大模型与呼叫中心结合的呼入机器人系统 原作者&#xff1a;开源呼叫中心FreeIPCC&#xff0c;其Github&#xff1a;https://github.com/lihaiya/freeipcc 随着人工智能技术的发展&#xff0c;特别是大模型&#xff08;large language models, LLMs&#xff09;的进步&#xf…

介绍 Html 和 Html 5 的关系与区别

HTML&#xff08;HyperText Markup Language&#xff09;是构建网页的标准标记语言&#xff0c;而 HTML5 是 HTML 的最新版本&#xff0c;包含了一些新的功能、元素、API 和属性。HTML5 相对于早期版本的 HTML&#xff08;比如 HTML4&#xff09;有许多重要的改进和变化。以下是…

【CSS in Depth 2 精译_085】14.2:CSS 蒙版的用法

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 14 章 蒙版、形状与剪切】 ✔️ 14.1 滤镜 14.1.1 滤镜的类型14.1.2 背景滤镜 14.2 蒙版 ✔️ 14.2.1 带渐变效果的蒙版特效 ✔️14.2.2 基于亮度来定义蒙版 ✔️14…