首页 > 其他分享 >螺旋矩阵

螺旋矩阵

时间:2024-12-20 21:53:32浏览次数:6  
标签:direction emplace matrix 螺旋 int res 矩阵 back

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

思路:设置好边界条件,要注意细节

class Solution {
public:
    vector<int> spiralOrder(vector<vector<int>>& matrix) {
        int m = matrix.size();
        int n = matrix[0].size();
        int num =n*m;
        int i=0,j=0;
        int left = 0,right = n-1,top = 0,buttom = m-1;
        int direction = 1;
        vector<int> res;
        while(num--){
            if(direction == 1){
                if(j<right){
                    res.emplace_back(matrix[i][j]);
                    j++;
                }else{
                    res.emplace_back(matrix[i][j]);
                    right--;
                    direction =2;
                    i++;
                }
            }
            else if(direction == 2){
                if(i<buttom){
                    res.emplace_back(matrix[i][j]);
                    i++;
                }else{
                    res.emplace_back(matrix[i][j]);
                    buttom--;
                    direction =3;
                    j--;
                }
            }         
            else if(direction == 3){
                if(j>left){
                    res.emplace_back(matrix[i][j]);
                    j--;
                }else{
                    res.emplace_back(matrix[i][j]);
                    left++;
                    direction =4;
                    i--;
                }
            }
            else{
                if(i>top+1){
                    res.emplace_back(matrix[i][j]);
                    i--;
                }else{
                    res.emplace_back(matrix[i][j]);
                    top++;
                    direction = 1;
                    j++;
                }
            }
        }
        return res;
    }
};

 

标签:direction,emplace,matrix,螺旋,int,res,矩阵,back
From: https://www.cnblogs.com/yueshengd/p/18620007

相关文章

  • 矩阵置零(标记数组)
    给定一个 mxn 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。示例1:输入:matrix=[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例2:输入:matrix=[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,......
  • 集星云推短视频矩阵系统:重塑短视频营销格局
    在瞬息万变的数字化时代,短视频已然成为连接用户与品牌的桥梁,为企业和个人创作者提供了前所未有的营销机遇。然而,面对日益激烈的市场竞争,如何高效、精准地实施短视频营销策略,成为众多企业和创作者面临的重大挑战。在此背景下,集星云推短视频矩阵系统应运而生,它以其卓越的功能、高......
  • 一文告诉你什么是RACI矩阵——附应用方案
    RACI是一个常用于项目管理和团队协作中的责任分配矩阵(ResponsibilityAssignmentMatrix)。它清晰地界定了项目或工作中每个角色(或个体)的职责,确保所有相关方都明确自己的任务和责任范围。RACI矩阵中的每个字母代表不同的责任类型:R(Responsible)负责:○负责执行任务的人。这是直接负......
  • shader 线性代数 矩阵
               ......
  • 对于矩阵树定理的运用
    学得很肤浅,但是常见的东西还是要记一下。证明以后懂了再补。一些定义:定义\(deg_x\)表示点\(x\)的度数,\(cnt_{i,j}\)表示\(i\)到\(j\)相连有的边数。度数矩阵\(D\):\(D_{i,i}=deg_i\),\(D_{i,j}=0(i\neqj)\);关联矩阵\(A\):\(A_{i,j}=cnt_{i,j}\);Laplace......
  • 59. 螺旋矩阵 II
    螺旋矩阵II给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的nxn正方形矩阵matrix。示例1:输入:n=3输出:[[1,2,3],[8,9,4],[7,6,5]]示例2:输入:n=1输出:[[1]]思路同54.螺旋矩阵边界控制:我们使用四个变量来控制当前遍历的边界:......
  • starccm螺旋桨气动仿真
    starccm+用MRF(移动参考坐标系法)进行螺旋桨气动参数分析1.模型预处理2.导入表面网格3.表面准备4.连续体设置5.边界设置6.网格划分7.求解器设置8.设置报告结果分析1.模型预处理从openvsp中导出的螺旋桨模型如下图所示处理方法为在catia创成式外形设计模块进行处理,修复......
  • 基础二维数组应用——蛇形矩阵
    蛇形矩阵是一个n*n的矩阵,将整数1到n*n按照蛇形的顺序装入一个n*n的蛇形矩阵中,如样例所示分别为5阶和10阶蛇形矩阵。输入格式:只有一行,为一个整数n,代表蛇形矩阵的阶数,n的范围是1—100。输出格式:共n行,为蛇形矩阵。每行的每个元素用空格分隔,注意最后一个数的后面为换行符。......
  • 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]思路边界......
  • 73. 矩阵置零
    矩阵置零给定一个mxn的矩阵,如果一个元素为0,则将其所在行和列的所有元素都设为0。请使用原地算法。实例一:输入:matrix=[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]实例二:输入:matrix=[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,......