码迷,mamicode.com
首页 > 其他好文 > 详细

498. Diagonal Traverse

时间:2018-11-01 12:02:18      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:i+1   nbsp   col   for   res   array   while   style   size   

 1 class Solution {
 2     public int[] findDiagonalOrder(int[][] matrix) {
 3         if(matrix.length == 0) return new int[0];
 4         int row = matrix.length;
 5         int col = matrix[0].length;
 6         int i = 0, j = 0;
 7         List<Integer> list = new ArrayList<>();
 8         int flag = 1;
 9         while(list.size() < row*col){
10            if(i >= 0 && i < row && j >= 0 && j < col){
11                // System.out.println(matrix[i][j]);
12                list.add(matrix[i][j]);
13                if(flag == 1){
14                    i = i-1;
15                    j = j+1;
16                }else{
17                    i = i+1;
18                    j = j-1;
19                }
20            }else if(flag == 1){
21                if(j < col){
22                    i = i+1;
23                }else{
24                    i = i+2;
25                    j = j-1;
26                    
27                }
28                flag = - flag;
29            }else if(flag == -1){
30                if(i >= row){
31                    j = j+2;
32                    i = i-1;
33                }else{
34                    j = j+1;
35                }
36                flag = -flag;
37            }
38         }
39         int[] res = new int[row*col];
40         for(int k = 0; k < res.length; k++){
41             res[k] = list.get(k);
42         }
43         return res;      
44     }
45 }

 

498. Diagonal Traverse

标签:i+1   nbsp   col   for   res   array   while   style   size   

原文地址:https://www.cnblogs.com/goPanama/p/9887146.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!