Traverse 2D Array (Matrix) Diagonally

后端 未结 2 1728
無奈伤痛
無奈伤痛 2021-01-13 02:36

So I found this thread that was extremely helpful in traversing an array diagonally. I\'m stuck though on mirroring it. For example:

var m = 3;
var n = 4;
va         


        
2条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-01-13 02:59

    /*
    Initialize the 2-D array.
    */      
    String array2D[] = { 
                        "mvjlixape",
                        "jhbxeenpp",
                        "hktthbswy",
                        "rwainuyzh",
                        "ppfxrdzkq",
                        "tpnlqoyjy",
                        "anhapfgbg",
                        "hxmshwyly",
                        "ujfjhrsoa" 
                        };
        // Print 2D array diagonally  for left top to right down
                for(int j = 0; j < array2D.length; j ++){
                    for(int i = 0; i < array2D.length; i++){
                        if(i+j >= array2D.length)
                            break;
                        System.out.print(array2D[i].charAt(i+j));
                    }
                    System.out.println();
                }
                for(int j = 1; j < array2D.length; j ++){
                    for(int i = 0; i < array2D.length; i++){
                        if(i+j >= array2D.length)
                            break;
                        System.out.print(array2D[i + j].charAt(i));
                    }
                    System.out.println();
                }
    
                // Print diagonally right top to left bottom diagonal
                for(int j = 0; j < array2D.length; j++){
                    for(int i = j; i >= 0; i--){
                        System.out.print(array2D[j - i].charAt(i));
                    }
                    System.out.println();
                }
                for(int j = 1; j < array2D.length; j ++){
                    for(int i = j; i < array2D.length; i++){
                        System.out.print(array2D[array2D.length - i + j - 1].charAt(i));
                    }
                    System.out.println();
                }
    

提交回复
热议问题