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

54. 螺旋矩阵

时间:2023-08-14 22:25:51浏览次数:39  
标签:matrix 螺旋 54 top bottom list length 矩阵 left

54. 螺旋矩阵

class Solution {
        public List<Integer> spiralOrder(int[][] matrix) {
        List<Integer> list = new ArrayList<>();
        if (matrix == null || matrix.length == 0 || matrix[0].length == 0) {
            return list;
        }
        
        int top = 0, bottom = matrix.length - 1, left = 0, right = matrix[0].length - 1;
        
        while (top <= bottom && left <= right) {
            // Traverse from left to right
            for (int i = left; i <= right; i++) {
                list.add(matrix[top][i]);
            }
            top++;
            
            // Traverse from top to bottom
            for (int i = top; i <= bottom; i++) {
                list.add(matrix[i][right]);
            }
            right--;
            
            // Traverse from right to left
            if (top <= bottom) {
                for (int i = right; i >= left; i--) {
                    list.add(matrix[bottom][i]);
                }
                bottom--;
            }
            
            // Traverse from bottom to top
            if (left <= right) {
                for (int i = bottom; i >= top; i--) {
                    list.add(matrix[i][left]);
                }
                left++;
            }
        }
        
        return list;
    }


}

标签:matrix,螺旋,54,top,bottom,list,length,矩阵,left
From: https://www.cnblogs.com/chenyi502/p/17629919.html

相关文章

  • 2024年秋招赛码网刷题-判断奇偶数、读取未给出行列数的矩阵
    1defis_even(n):2return1ifn%2==0else034n=int(input())56result=is_even(n)7print(result)#最后一行不能用return因为return只能在函数内部使用。在顶层代码中用return不合法 ......
  • 剑指 Offer 12. 矩阵中的路径
    力扣官方解法:classSolution{public:boolexist(vector<vector<char>>&board,stringword){inth=board.size(),w=board[0].size();vector<vector<int>>visited(h,vector<int>(w));for(inti=0......
  • python实战练习1:矩阵和整数相乘
       1#方法一:这是最先想到的2s=[[1,2,3],[4,5,6],[7,8,9]]3n=int(input())45r=[]6foriins:7a=[]#这个很重要,每次要清空8forjini:9a.append(j*n)10r.append(a)1112print(r)13141516171......
  • dp-矩阵链相乘顺序
    矩阵链相乘顺序目录矩阵链相乘顺序问题描述举例说明问题分析程序问题描述A1,A2,..,An表示n个矩阵的序列,其中Ai为\(P_{i−1}×P_i\)阶矩阵,i=1,2,...,n。向量P=<P0,P1,P2..Pi>表示矩阵链的输入,其中P0是A1的行数,P1是A1的列数,P1是A2的行数,以此类推。计算这个矩阵需要做n−1次两......
  • 剑指 Offer 54. 二叉搜索树的第k大节点(简单)
    题目:classSolution{public:voidtraversal(TreeNode*cur,vector<int>&result){//本题利用二叉搜索树的排序性质if(cur==nullptr)return;traversal(cur->right,result);//唯一要注意的是题目要求第k大的,所以要把大的放在前面。遍历顺序......
  • 复习:矩阵快速幂
    前言emmm太久了忘了许多写笔记来复习一下概念矩阵乘法什么是矩阵乘法?给你两个矩阵\(a,b\)则令\(c=a*b\)有\(c_n=a_n\),\(c_m=b_m\)\[\sum\limits_{i=1}^{c_n}\sum\limits_{j=1}^{c_m}c_{i,j}\sum\limits_{k=1}^{a_m}a_{i,k}*b_{k,j}\]两个矩阵做乘法的前提:\(a_m=b_n\)......
  • 1572. 矩阵对角线元素的和
    1572.矩阵对角线元素的和2023年8月12日19:07:511572.矩阵对角线元素的和简单给你一个正方形矩阵mat,请你返回矩阵对角线元素的和。请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。示例1:输入:mat=[[1,2,3],[4,5,6],[......
  • 1572. 矩阵对角线元素的和
    题目链接给定一个正方形矩阵,返回对角线元素的和(两条对角线,中心的元素不要叠加两次)。第一种方法:遍历矩阵矩阵中某个位置(i,j)如果处于对角线上。则一定满足下列条件之一:i=j;i+j=n-1;根据上边的结论,可以遍历整个矩阵。如果满足条件之一,则表示该元素在对角线上,加入到......
  • 封装矩阵一系列
    structMatrix{typedeflonglongll;constllmod=1000000007;llmatrix[110][110];//矩阵里的每一个数llline,colu;//矩阵的行,列Matrixoperator*(constMatrix&b)const{Matrixans;ans.line=line,ans.colu=......
  • 4954: 矩阵游戏
    题目描述婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的\(n\)行\(m\)列的矩阵(你不用担心她如何存储)。她生成的这个矩阵满足一个神奇的性质:若用\(F[i,j]\)来表示矩阵中第\(i\)行第\(j\)列的元素,则\(F[i,j]\)满足下面的递推式:\[\begin{aligned}F[1,1]&=......