Atul Kumar Srivastava
BAN USERGood at problem solving
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class PrintMatrixNWSE {
private static int[][] arr;
private static int n;
private static int m;
private static Set<String> covered;
private static List<String> queue;
private static String sep = ":";
public static void main(String a[]) {
n = 4;
m = 4;
arr = new int[n][m];
arr[0] = new int[] { 1, 2, 3, 4 };
arr[1] = new int[] { 5, 6, 7, 8 };
arr[2] = new int[] { 9, 10, 11, 12 };
arr[3] = new int[] { 13, 14, 15, 16 };
covered = new HashSet<String>();
queue = new ArrayList<String>();
queue.add(n - 1 + sep + 0);
System.out.println(arr[n - 1][0]);
while (queue.size() != 0) {
queue = printNum(queue);
}
}
private static List<String> printNum(List<String> queue) {
List<String> aux = new ArrayList<String>();
for (String tmp : queue) {
String[] inds = tmp.split(sep);
int i = Integer.parseInt(inds[0]);
int j = Integer.parseInt(inds[1]);
if (j == 0 && i > 0) {
aux.add(i - 1 + sep + j);
System.out.print(arr[i - 1][j] + "\t");
}
if (j < m - 1 && !covered.contains(tmp)) {
aux.add(i + sep + (j + 1));
System.out.print(arr[i][j + 1] + "\t");
}
covered.add(tmp);
}
System.out.println();
return aux;
}
}
- Atul Kumar Srivastava January 07, 2017