fork(1) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. // your code goes here
  13. int rows = 3;
  14. int columns = 3;
  15. ArrayList<ArrayList<Integer>> matrix =
  16. new ArrayList<ArrayList<Integer>>();
  17. for (int i=0; i<rows; i++) {
  18. matrix.add(new ArrayList<Integer>());
  19. for (int j=0; j<columns; j++) {
  20. matrix.get(i).add((j+1)+(columns*i));
  21. }
  22. }
  23. for (int i=0; i<rows; i++) {
  24. for (int j=0; j<columns; j++) {
  25. System.out.print(matrix.get(i).get(j) + " ");
  26. }
  27. System.out.println("");
  28. }
  29. printMatrixLine(0,0, rows, columns, "col", "increment", matrix);
  30. }
  31.  
  32. public static void printMatrixLine(int startRow, int startCol, int rows,
  33. int columns, String parameterToChange, String direction,
  34. ArrayList<ArrayList<Integer>> matrix) {
  35.  
  36. int traverser;
  37. int multiplier;
  38. String whichDirection;
  39. boolean visited = false;
  40.  
  41. if (direction == "increment") {
  42. multiplier = 1;
  43. }
  44. else {
  45. multiplier = -1;
  46. }
  47.  
  48. if (parameterToChange == "row") {
  49. traverser=startRow;
  50. System.out.printf("trav: %d, visited %b", traverser, visited);
  51. while ( (traverser >= 0) && (traverser<rows) && !visited ) {
  52. if (matrix.get(traverser).get(startCol) != -1) {
  53. System.out.print(matrix.get(traverser).get(startCol));
  54. matrix.get(traverser).set(startCol, -1);
  55. traverser = traverser + 1*multiplier;
  56. }
  57. else {
  58. visited = true;
  59. }
  60. }
  61. System.out.printf("trav: %d, visited %b", traverser, visited);
  62. if (direction == "increment") {
  63. whichDirection = "decrement";
  64. }
  65. else {
  66. whichDirection = "increment";
  67. }
  68. printMatrixLine(traverser-1*multiplier, startCol, rows,
  69. columns, "col", whichDirection, matrix);
  70. }
  71. else {
  72. traverser=startCol;
  73. while ( (traverser>=0) && (traverser<columns) ) {
  74. if (matrix.get(startRow).get(traverser) != -1) {
  75. System.out.print(matrix.get(startRow).get(traverser));
  76. matrix.get(startRow).set(traverser, -1); //mark visited
  77. traverser = traverser + 1*multiplier;
  78. }
  79. }
  80. }
  81.  
  82. }
  83.  
  84. }
Success #stdin #stdout 0.04s 4386816KB
stdin
Standard input is empty
stdout
1 2 3 
4 5 6 
7 8 9 
123