zoukankan      html  css  js  c++  java
  • lintcode:Matrix Zigzag Traversal 矩阵的之字型遍历

    题目:

    给你一个包含 m x n 个元素的矩阵 (m 行, n 列), 求该矩阵的之字型遍历。

    样例

    对于如下矩阵:

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

    返回 [1, 2, 5, 9, 6, 3, 4, 7, 10, 11, 8, 12]

    解题:

    感觉很简单,就是没有搞出来,程序来源 ,这里是先右上走,我换成先横着走就是不对了,表示不理解。另外一种方法,表示也不理解。

    java程序:

    public class Solution {
        /**
         * @param matrix: a matrix of integers
         * @return: an array of integers
         */ 
        public int[] printZMatrix(int[][] matrix) {
            if(matrix == null || matrix.length == 0 || matrix[0].length == 0) return null;
            int count = matrix.length * matrix[0].length;
            int[] array = new int[count];
            int r = 0, c = 0;
            array[0] = matrix[0][0];
            for (int i = 1; i < count; ) {
                //斜上走到顶
                while(i < count && r - 1 >= 0 && c + 1 < matrix[0].length) {
                    array[i++] = matrix[--r][++c];
                }
                //横右走一步,不可横右走时竖下走一步
                if (i < count && c + 1 < matrix[0].length) {
                    array[i++] = matrix[r][++c];
                } else if (i < count && r + 1 < matrix.length) {
                    array[i++] = matrix[++r][c];
                }
                //斜下走到底
                while(i < count && r + 1 < matrix.length && c - 1 >= 0) {
                    array[i++] = matrix[++r][--c];
                }
                //竖下走一步,不可竖下走时横右走一步
                if (i < count && r + 1 < matrix.length) {
                    array[i++] = matrix[++r][c];
                } else if (i < count && c + 1 < matrix[0].length) {
                    array[i++] = matrix[r][++c];
                }
            }
            return array;
        }
    
    }
    View Code

    总耗时: 2001 ms

    Python程序:

  • 相关阅读:
    LinuxMCE
    qBittorrent 0.9.0
    Exaile 0.2.9
    GAdminHttpd:图形化的 Apache 打点对象
    FBReader-电子书阅读对象
    CSSED:Linux 下 Web 拓荒者的 CSS 编纂利器
    Canorus:乐谱编辑软件
    AutoScan-收集监视及办理器械
    Lunar Applet:在桌面表现阴历
    Totem 2.18.1
  • 原文地址:https://www.cnblogs.com/bbbblog/p/4888978.html
Copyright © 2011-2022 走看看