[Matrix]54. Spiral Matrix

Given an m x n matrix, return all elements of the matrix in spiral order.

# 1. 横向遍历m,纵向遍历n-1;

# 2. 横向遍历m-1,纵向遍历n-2;

# 3. 横向遍历m-2,纵向遍历n-3;.......

# 4. 直到有一方向遍历长度为0时终止。

class Solution {

    public List<Integer> spiralOrder(int[][] matrix) {

        List<Integer> res = new ArrayList();

        int n = matrix.length;

        int m = matrix[0].length;

        int i = 0, j = -1;

        int flag = 1;

        while(m > 0 && n > 0){

            for(int x = 0;x < m; x++){

                j += flag;

                res.add(matrix[i][j]);

            }

            for(int x = 0;x < n - 1; x++){

                i += flag;

                res.add(matrix[i][j]);

            }

            flag *= -1;

            m -= 1;

            n -= 1;

        }

        return res;

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 七.数组 1.给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返...
    寒江_d764阅读 2,394评论 0 0
  • 剑指Offer系列 [TOC] 数组和字符串 剑指offer 04.二维数组中的查找 从左下角开始查找,二分思想。...
    SwiftGo阅读 3,150评论 0 1
  • 题目链接tag: Medium; question:  Given a matrix of m x n eleme...
    xingzai阅读 1,144评论 0 1
  • ● 如何打印二叉树每层的节点? 考察点:二叉树 参考回答: 实现代码: import java.util.Arra...
    le_u阅读 3,414评论 0 0
  • Type:medium Given a matrix ofmxnelements (mrows,ncolumns)...
    萌小熙喵阅读 734评论 0 0