首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
螺旋矩阵
[编程题]螺旋矩阵
热度指数:139829
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。
数据范围:
,矩阵中任意元素都满足
要求:空间复杂度
,时间复杂度
示例1
输入
[[1,2,3],[4,5,6],[7,8,9]]
输出
[1,2,3,6,9,8,7,4,5]
示例2
输入
[]
输出
[]
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(825)
分享
提交结果有问题?
254个回答
201篇题解
开通博客
LaN666
发表于 2020-11-22 10:05:49
精华题解
基本思路:这道题目的话属于一道模拟题,只需要找出输出的规则和边界终止条件即可。 方法一:按时钟指针转动规则 方式一我们可以按照时钟中指针的转动方向来模拟这道题目的输出结果。我们从最上面开始遍历,接着到边的时候就向下遍历,然后向左向上遍历,当一圈遍历结束的时候则进入里圈进行遍历。下面直接贴出代码并有相
展开全文
牛客题解官
发表于 2022-04-22 13:10:43
精华题解
题目主要信息: 题目给定一个n∗mn*mn∗m的矩阵,需要将其螺旋输出 举一反三: 学习完本题的思路你可以解决类似的矩阵遍历的问题。 方法:边界模拟法(推荐使用) 思路: 这道题就是一个简单的模拟,我们想象有一个矩阵,从第一个元素开始,往右到底后再往下到底后再往左到底后再往上,结束这一圈,进入下
展开全文
未来0116
发表于 2021-07-10 15:11:05
精华题解
一.题目描述NC38螺旋矩阵题目链接:https://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31tpId=196&&tqId=37072&rp=1&ru=/activity/oj&qru
展开全文
能吃不胖发量多
发表于 2020-10-15 09:36:30
class Solution: def spiralOrder(self , matrix ): res = [] while matrix: res += matrix[0] matrix = list(zip
展开全文
Arktische
发表于 2020-10-27 15:06:02
思路 观察可知螺旋遍历每圈的遍历模式是一样的,每一圈一般可以分解为下图的四步,这样就方便放入for循环。设每一圈遍历的起始点为matrix[z][z],可以总结出每圈的遍历模式如下,其中r c分别为本圈行列数: for(int i = 0; i < c - 1; i++) res.push_b
展开全文
悟空WK
发表于 2020-11-27 09:20:38
牛客题霸NC38螺旋矩阵Java题解https://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31?tpId=117&&tqId=34959&rp=1&ru=/ta/job-code-high&am
展开全文
牛客593204714号
发表于 2021-08-12 13:12:16
java递归思想(少了很多判断,不容易越界!!) 这个方法很容易懂方法: 打印矩阵第一行 移除矩阵第一行并形成一个新的矩阵 向左旋转矩阵并形成一个新的矩阵 回到步骤1 import java.util.*; public class Solution { public ArrayList<
展开全文
华科不平凡
发表于 2020-09-29 16:17:43
由于行列不相等,因此定义四个变量用于记录边界: 左边界left 右边界right 上边界top 下边界bottom 然后以top和left基准层层打印,值得注意的是,为了避免重复打印,我们需要在打印下边和左边时额外判断一下top和bottom以及left和right是否相等: // // Cre
展开全文
道德高尚
发表于 2021-10-08 15:58:37
// 这能叫入门吗?!!! // 写了个常规思路 class Solution { public: vector<int> spiralOrder(vector<vector<int> > &matrix) { vector<
展开全文
拾夕
发表于 2021-08-09 14:56:03
思路 此法来自大佬 能吃胖发量不多 每取出一行,对其进行顺时针旋转(转置) 对转置后的矩阵,进行按行反转,使其相当于逆时针旋转 重复 1 2 步骤,直至矩阵为空class Solution: def spiralOrder(self , matrix ): res = []
展开全文
Frankie_chan
发表于 2021-03-30 00:13:48
啊,好吧,我菜,写了一天多一点写完这题 这个算是我的草稿,里面还有我把过去的代码注释掉的部分 是我的求错的历程 将这个代码复制到pycharm是可以良好运行的,我已经测试了3*3 , 4*4, 5*5的矩阵了,后面的部分应该也是可以运行的 啊,菜鸡有点开心,写出来一道题真的是
展开全文
JIEIJ
发表于 2021-10-04 11:13:07
/** * * @param matrix int整型二维数组 * @param matrixRowLen int matrix数组行数 * @param matrixColLen int* matrix数组列数 * @return int整型一维数组 * @return int*
展开全文
牛客493206717号
发表于 2021-03-07 17:17:17
题目描述给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。 解法 //解法:模拟 //时间复杂度O(n*m),空间O(1) vector<int> spiralOrder(vector<vector<int> >
展开全文
问题信息
数组
难度:
254条回答
825收藏
25739浏览
热门推荐
通过挑战的用户
查看代码
Coder-B...
2023-03-10 16:00:05
白自在1118
2022-11-02 16:29:57
想回家的90后...
2022-10-24 10:26:45
double_...
2022-10-15 10:10:28
牛客74843...
2022-10-08 12:58:05
相关试题
BN的gama labada意义是什么
评论
(1)
你如何看待子弹短信?从产品的角度,...
竞品研究
评论
(1)
在大语言模型中,LayerNorm...
大模型开发
评论
(1)
在大语言模型中,什么是"Spars...
大模型开发
评论
(1)
在大语言模型中,什么是"Knowl...
大模型开发
评论
(1)
螺旋矩阵
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 * @return int整型ArrayList */ public ArrayList
spiralOrder (int[][] matrix) { // write code here } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型vector
> * @return int整型vector */ vector
spiralOrder(vector
>& matrix) { // write code here } };
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param matrix int整型二维数组 # @return int整型一维数组 # class Solution: def spiralOrder(self , matrix ): # write code here
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 * @return int整型一维数组 */ public List
spiralOrder (List
> matrix) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 * @return int整型一维数组 */ function spiralOrder( matrix ) { // write code here } module.exports = { spiralOrder : spiralOrder };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param matrix int整型二维数组 # @return int整型一维数组 # class Solution: def spiralOrder(self , matrix: List[List[int]]) -> List[int]: # write code here
package main import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 * @return int整型一维数组 */ func spiralOrder( matrix [][]int ) []int { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 * @param matrixRowLen int matrix数组行数 * @param matrixColLen int* matrix数组列数 * @return int整型一维数组 * @return int* returnSize 返回数组行数 */ int* spiralOrder(int** matrix, int matrixRowLen, int* matrixColLen, int* returnSize ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param matrix int整型二维数组 # @return int整型一维数组 # class Solution def spiralOrder(matrix) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 * @return int整型一维数组 */ def spiralOrder(matrix: Array[Array[Int]]): Array[Int] = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 * @return int整型一维数组 */ fun spiralOrder(matrix: Array
): IntArray { // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 * @return int整型一维数组 */ public int[] spiralOrder (int[][] matrix) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 * @return int整型一维数组 */ export function spiralOrder(matrix: number[][]): number[] { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 * @return int整型一维数组 */ func spiralOrder ( _ matrix: [[Int]]) -> [Int] { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 * @return int整型一维数组 */ pub fn spiralOrder(&self, matrix: Vec
>) -> Vec
{ // write code here } }
[[1,2,3],[4,5,6],[7,8,9]]
[1,2,3,6,9,8,7,4,5]
[]
[]