zoukankan      html  css  js  c++  java
  • 54. Spiral Matrix

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

    Example 1:

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

    Example 2:

    Input:
    [
      [1, 2, 3, 4],
      [5, 6, 7, 8],
      [9,10,11,12]
    ]
    Output: [1,2,3,4,8,12,11,10,9,5,6,7]
    1.从左到右,然后判断
    2.从上到下,然后判断
    3.从右到左,然后判断
    4.从下到上,然后判断
    class Solution {
        public List<Integer> spiralOrder(int[][] matrix) {
            List<Integer> res = new ArrayList<Integer>();
            if(matrix.length==0 || matrix[0].length ==0) return res;  //记住要判断空的情况
            int m = matrix.length, n = matrix[0].length;
            int up = 0, down = m-1, left = 0, right = n-1;
            while(true){
                for(int j = left; j <= right; j++) res.add(matrix[up][j]);
                if(++up > down) break;
                for(int i = up; i <= down; i++) res.add(matrix[i][right]);
                if(--right < left) break;
                for(int j = right; j >= left; j--) res.add(matrix[down][j]);
                if(--down < up) break;
                for(int i = down; i >= up; i--) res.add(matrix[i][left]);
                if(++left > right) break;
            }
            return res;
        }
    }
  • 相关阅读:
    两个有序数组,找第k小的数//未完
    top详解--查看cpu及内存使用情况
    查看IO情况
    hadoop常用的调优参数
    zookeeper 的 javaAPI
    MapReduce优化
    mySQL索引数据数据结构 B+ 树
    P2670 [NOIP2015 普及组] 扫雷游戏
    P1887 乘积最大3
    1299. 五指山
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/10355799.html
Copyright © 2011-2022 走看看