`

LeetCode 54 - Spiral Matrix

 
阅读更多

Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.

For example,
Given the following matrix:

[
 [ 1, 2, 3 ],
 [ 4, 5, 6 ],
 [ 7, 8, 9 ]
]

You should return [1,2,3,6,9,8,7,4,5].

/*  k - starting row index
    m - ending row index
    l - starting column index
    n - ending column index
    i - iterator
*/
public List<Integer> spiralOrder(int[][] matrix) {
    List<Integer> result = new ArrayList<>();
    int m = matrix.length;
    if(m == 0) return result;
    int n = matrix[0].length;
    if(n == 0) return result;
    int k = 0, l = 0;
    while(k<m && l<n) {
        for(int i=l; i<n; i++) {
            result.add(matrix[k][i]);
        }
        k++;
        n--;
        for(int i=k; i<m; i++) {
            result.add(matrix[i][n]);
        }
        if(k < m) {
            m--;
            for(int i=n-1; i>=l; i--) {
                result.add(matrix[m][i]);
            }
        }
        if(l < n) {
            for(int i=m-1; i>=k; i--) {
                result.add(matrix[i][l]);
            }
            l++;
        }
    }
    return result;
}

 

分享到:
评论

相关推荐

    js-leetcode题解之54-spiral-matrix.js

    js js_leetcode题解之54-spiral-matrix.js

    C语言-leetcode题解之54-spiral-matrix.c

    c是最好的编程语言 C语言_leetcode题解之54-spiral-matrix.c

    js-leetcode题解之59-spiral-matrix-II.js

    js js_leetcode题解之59-spiral-matrix-II.js

    C语言-leetcode题解之59-spiral-matrix-ii.c

    c语言入门 C语言_leetcode题解之59-spiral-matrix-ii.c

    leetcode答案-Spiral-Matrix:返回二维数组中整数元素的顺时针螺旋列表

    leetcode 答案螺旋矩阵 返回二维数组中整数元素的顺时针螺旋列表 [答案击败 100% Java LeetCode 运行时提交] [答案击败 100% Java LeetCode 内存使用提交] 大(O)= O(N)

    leetcode答案-leetcode-java:leetcode的Java代码

    Spiral Matrix com.leetcode.list Linked List Cycle Linked List Cycle II Remove Duplicates from Sorted List com.leetcode.string Single Number com.leetcode.tree Balanced Binary Tree Maximum Depth of ...

    LeetCode-Hot-100

    "Spiral Matrix"则需要理解矩阵旋转的数学原理。 5. **递归与函数**:递归是解决许多算法问题的有效手段,如"Binary Tree Level Order Traversal"使用层次遍历(广度优先搜索)求解。而"Factorial Trailing Zeroes...

    _leetcode-python.pdf

    - Spiral Matrix: 给定一个m×n矩阵,以螺旋方式遍历矩阵中的所有元素一次,并且只遍历一次。 - Merge Intervals: 给定一组区间,请合并所有重叠的区间。 - Insert Interval: 在一组已经排序的区间中,插入一个新的...

    leetcode338-leetcode_cpp:leetcode的C++代码

    第 338 章leetcode_cpp leetcode 的 C++ 代码 包含的问题 1 两和容易2 加两个数中5 最长回文子串中6 ZigZag 转换介质7 反转整数简单8 ...Spiral Matrix II 培养基61 轮播列表中第62话第63话64 最小路径和中66

    leetcode530-Leetcode:新的开始

    leetcode 530 力码 全部的: 易(173/237+x) 中(144/437+x) 硬(4/x) 问题 1.Two Sum(dict) 7.(跳过)(数学) 9.(跳过)(串串技巧) 11.盛水最多的容器 12.(跳过)(问题不好) 13.(跳过)(蛮力) 14.(跳过)...

    多线程leetcode-leetcode-java:leetcode上的题解,基于java语言

    多线程 leetcode 前言 ...Spiral Matrix Path Sum II Copy List with Random Pointer Building H2O Fizz Buzz Multithreaded hard Merge k Sorted Lists Reverse Nodes in k-Group Trapping Rain Water

    leetcode2sumc-Leetcode-2020:刷刷Leetcode并作纪录

    Spiral Matrix medium O 66 Plus One easy O O 118 Pascal's Triangle easy O O 119 Pascal's Triangle II easy O 要满足只用一个array大小空间O(k) k为input大小来完成,须具备backtracking概念 151 Reverse Words ...

    javalruleetcode-Leetcode-Solutions:为了去头条而刷题

    leetcode LeetCode Solutions 算法 - Algorithms 排序算法:快速排序、归并排序、计数排序 搜索算法:回溯、递归、剪枝技巧 图论:最短路、最小生成树、网络流建模 动态规划:背包问题、最长子序列、计数问题 基础...

    戳气球leetcode-leetcode:leetcode

    leetcode category other hot keywords:Palindrome(mic), Subsequence Array 螺旋矩阵Spiral Matrix 顺时针打印矩阵 Next Permutation Product of Array Except Self 189.rotate-array 283.move-zero Range Sum ...

    LeetCode最全代码

    # [LeetCode](https://leetcode.com/problemset/algorithms/) ![Language](https://img.shields.io/badge/language-Python%20%2F%20C++%2011-orange.svg) [![License]...

    SpiralMatrixII-Leetcode-59

    其中,问题59,名为"Spiral Matrix II"(螺旋矩阵II),是中级难度的一个挑战,主要考察的是矩阵遍历的技巧。该问题的核心目标是生成一个给定大小的螺旋矩阵,从中心开始,以螺旋形状填充数字。 首先,让我们明确...

    python-leetcode面试题解之第54题螺旋矩阵-题解.zip

    标题中的“python-leetcode面试题解之第54题螺旋矩阵-题解.zip”表明这是一个关于Python编程语言的LeetCode面试题解答,具体是针对第54题——螺旋矩阵(Spiral Matrix)的解题代码和分析。LeetCode是一个在线平台,...

    c++-c++编程基础之leetcode题解第54螺旋矩阵.zip

    在本压缩包中,主题聚焦于C++编程基础与LeetCode题目的结合,特别是针对第54题“螺旋矩阵”(Spiral Matrix)的解法。LeetCode是一个在线平台,提供了一系列编程挑战,旨在帮助程序员提升算法技能和解决实际问题的...

    C语言入门-leetcode练习之第54题螺旋矩阵.zip

    【C语言入门与LeetCode第54题:螺旋矩阵】\n\n在计算机科学的世界里,C语言作为一门基础且强大的编程语言,是许多初学者踏入编程领域的首选。本资料包“C语言入门-leetcode练习之第54题螺旋矩阵.zip”旨在帮助你通过...

    javascript-leetcode面试题解递归与回溯问题之第54题螺旋矩阵-题解.zip

    本题解围绕的是LeetCode中的第54题——螺旋矩阵(Spiral Matrix)。该题目的核心是理解递归与回溯的概念,并运用它们来解决实际问题。 螺旋矩阵是一种特殊的矩阵布局方式,数据按照顺时针方向螺旋地填充二维数组。...

Global site tag (gtag.js) - Google Analytics