leetcode-54螺旋矩阵

leetcode-54螺旋矩阵给你一个 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]提示:m == matrix.lengthn == matrix[i].length1 <= m,

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给你一个 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]

提示:

m == matrix.length
n == matrix[i].length
1 <= m, n <= 10
-100 <= matrix[i][j] <= 100

class Solution { 
   
public:
    vector<int> spiralOrder(vector<vector<int>>& matrix) { 
   
        vector<int>res;
        int n = matrix.size(),m = matrix[0].size();
        int w = min(n,m);
        for(int i = 0;i < (w + 1) / 2;i ++){ 
   
            for(int j = i;j < m - i;j ++)res.push_back(matrix[i][j]);
            for(int j = i + 1;j < n - i;j ++)res.push_back(matrix[j][m - i - 1]);
            for(int j = m - 2 - i;j >= i;j --){ 
   
                if(n - i - 1 == i)break;
                res.push_back(matrix[n - i - 1][j]);
            }
            for(int j = n - 2 - i;j >= i + 1;j --){ 
   
                if(m - i - 1 == i)break;
                res.push_back(matrix[j][i]);
            }
        }
        return res;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168716.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 爆肝两万字,我爷爷都看的懂的《栈和队列》,建议各位观众姥爷先收藏

    爆肝两万字,我爷爷都看的懂的《栈和队列》,建议各位观众姥爷先收藏文章目录一、栈????栈的概念及结构????栈的实现二、队列????队列的概念及结构????队列的实现三、栈和队面试题四、概念选择题????1????2一、栈????栈的概念及结构栈:一种特殊的线性表,其只允许在固定的一端插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称库栈底。栈中的数据元素遵守后进先出LIFO(LastInFirstOut)的原则栈有两个经典的操作1️⃣压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。2️⃣出栈:栈的删除操

    2022年6月2日
    36
  • sql2012安装错误代码0x84b10001_0x80300001安装错误

    sql2012安装错误代码0x84b10001_0x80300001安装错误”.”(十六进制值0x00)是无效字符。问题描述:Win7(SP1)卸载SQLServer2000后,先安装SQLSever2008,顺利完成,再安装SQLServer2014,各版本均提示”0x84B10001″错误。问题分析:检索相关网页,多认为Win7不能安装SQLServer2014企业版,只能安装开发版或标准版;有的认为操作系统语言版本要和SQLSever的

    2025年10月24日
    2
  • html网页中加入音乐播放器,[HTML5]简单网页本地音乐播放器[通俗易懂]

    html网页中加入音乐播放器,[HTML5]简单网页本地音乐播放器[通俗易懂]既然HTML5提出与本地交互方便,就想写个HTML5的本地音乐播放器。一开始问题主要集中在怎么读取本地文件路径,我想肯定可以用JS实现去操作本地文件(因为node.js很容易实现读取本地文件,但是原生JS怎么写不太清楚),不过简单一点就用这样只能读取一个,我想做的是最好是把一个文件夹中的都取出来,然后参考http://sapphion.com/2011/11/html5-folder-upload…

    2022年6月21日
    22
  • 数仓拉链表[通俗易懂]

    数仓拉链表[通俗易懂]拉链表一丶什么是拉链表拉链表是一种数据模型,主要是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。拉链表可以避免按每一天存储所有记录造成的海量存储问题,同时也是处理缓慢变化数据的一种常见方式。百度百科的解释:拉链表是维护历史状态,以及最新状态数据的一种表,拉链表根据拉链粒度的不同,实际上相当于快照,只不过做了优化,去除了一部分不变的记录,通过拉链表可以很方便的还原出拉链时点的客户记录。二丶拉链表的产生背景在数据仓库的

    2022年10月16日
    5
  • 阿里游戏大数据sesson2_RF&amp;GBRT(上)

    阿里游戏大数据sesson2_RF&amp;GBRT(上)

    2022年1月1日
    64
  • 整型转字符串c语言_java字符串数组转字符串

    整型转字符串c语言_java字符串数组转字符串整型转字符串实现(C语言)second6020180529#include&lt;stdio.h&gt;//n&lt;2的32次数,所以最大10位//n可能为负数,也可能为正数voidint2str(intn,char*str){charbuf[10]="";inti=0;intlen=0;//temp为n的绝…

    2022年10月19日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号