• Diagonal Traverse


    Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in diagonal order as shown in the below image.

    Example:

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

    Note:

    1. The total number of elements of the given matrix will not exceed 10,000.
     1 public class Solution {
     2     public int[] findDiagonalOrder(int[][] matrix) {
     3         if (matrix.length == 0 || matrix[0].length == 0)
     4             return new int[0];
     5         
     6         int m = matrix.length, n = matrix[0].length, N = m * n;
     7         int[] result = new int[N];
     8         int i = 0, j = 0, index = 0, time = 1;
     9         while (index < N && i < m && j < n) {
    10             if (time == 1) {
    11                 while(i >= 0 && j < n) {
    12                     result[index++] = matrix[i][j];
    13                     
    14                     i -= 1;
    15                     j += 1;
    16                     
    17                     if (j == n) 
    18                         i += 2;
    19                 }
    20                 i = Math.max(0, i);
    21                 j = Math.min(n - 1, j);
    22                 
    23                 time = 2;
    24             } else {
    25                 while (i < m && j >= 0) {
    26                     result[index++] = matrix[i][j];
    27                     i += 1;
    28                     j -= 1;
    29                     
    30                     if (i == m)
    31                         j += 2;
    32                 }
    33                 i = Math.min(m - 1, i);
    34                 j = Math.max(0, j);
    35                 
    36                 time = 1;
    37             }
    38         }
    39         return result;
    40     }
    41 }
  • 相关阅读:
    第十六周总结
    第十五周学习进度
    输出最长字符串链
    第二阶段冲刺10
    第二阶段冲刺09
    第二阶段冲刺08
    输入法评价
    第十四周进度总结
    collections模块
    shutil模块(了解)
  • 原文地址:https://www.cnblogs.com/amazingzoe/p/6440091.html
Copyright © 2020-2023  润新知