zoukankan      html  css  js  c++  java
  • Leetcode53_Spiral_Matrix

    Spiral_Matrix

    https://leetcode-cn.com/problems/spiral-matrix/

    //当行数只有一行:
    1、 n = 1;
          m -> 0;
    
    //当列数只有一列
    2、m = 1;
         n -> 0;
    
    //行数为 n, 列数为m
    3、
       
        。。。。。。
        。。。。。。 
        。。。。。。
        。。。。。。
    1) 第一次 x, y y = 0; x : 0 -> m-1; x = m-1; y : 0 -> n-1; y = n-1; x : m -> 0; x = 0; y : n -> 1 2) 第二次 y = 1; x : 0 -> m -2; x = m-2; y : 1 -> n - 2; y = n -2; x:m -1 -> 1; x = m-2; y : n-1 -> 2 ...以此类推

     代码

    class Solution {
        public List<Integer> spiralOrder(int[][] matrix) {
             ArrayList<Integer> list = new ArrayList<Integer>();
     
            if (matrix == null || matrix.length == 0) {
                return null;
            }
            int n = matrix[0].length;
            int m = matrix.length;
     
            int x = 0, y = 0;
            int i, j;
            while (n > 0 && m > 0) {
     
                if (n == 1) {
                    for (int k = 0; k < m; k++) {
                        list.add(matrix[k][0]);
                    }
                    return list;
                }
     
                if (m == 1) {
                    for (int k = 0; k < n; k++) {
                        list.add(matrix[0][k]);
                    }
                    return list;
                }
                i = x;
                j = y;
                for (; i < n; i++) {
                    list.add(matrix[j][i]);
                }
                i --;
                j ++;
                for (; j < m; j++) {
                    list.add(matrix[j][i]);
                }
                i --;
                j --;
               for(; i >= x ; i--) {
                   list.add(matrix[j][i]);
               }
               j--;
               i++;
               for(; j >= y + 1; j--) {
                   list.add(matrix[j][i]);
               }
               x++;
               y++;
               m--;
               n--;
            }
            return list;
        }
    }
    

      

  • 相关阅读:
    coredns bug
    Android的Sepolicy
    漫谈fork
    ftrace总结
    Framebuffer
    .net core 5 发送windows10桌面通知
    test_app 测试环境搭建
    GitHub骚操作
    git基于某分支创建新分支
    mysql导入数据load data infile
  • 原文地址:https://www.cnblogs.com/Jomini/p/11929666.html
Copyright © 2011-2022 走看看