Idk, если это именно то, что вы просите, но это сгенерирует шаблон "змеи", который вы описали.
Это может быть упрощено с помощью троичного кода, но это делает его более читабельным, я думаю
Было бы интересно найти более умный способ, если кто-то найдет лучший способ, пожалуйста, прокомментируйте
public static int[][] genArray(int length) {
int[][] arr = new int[length][length];
int counter = 0;
for (int col = 0; col < arr.length; col++) {
if (col % 2 == 0) {
for (int row = 0; row < arr.length; row++) {
arr[row][col] = counter++;
}
} else {
for (int row = arr.length - 1; row >= 0; row--) {
System.out.println("row: " + row + ", col: " + col);
arr[row][col] = counter++;
}
}
}
}
return arr;
}