© 2026 Hedgehog Software, LLC
public class ZigZagBallFallsTry { public int[] FindBall(int[][] grid) { int col = grid[0].Length-1; int row = grid.Length-1; int[] result = new int[col]; for (int i = 0; i < col; i++) { result[i] = BallHelp(grid, row, col); } return result; } private int BallHelp(int[][] grid, int row, int col) { int currRow = 0; int currCol = col; while (currRow <= row) { if (grid[currRow][currCol] == 1) { if (currCol == col || grid[currRow][currCol + 1] == -1) { return -1; } else { currCol++; currRow++; } } else if (grid[currRow][currCol] == -1) { if (currCol == 0 || grid[currRow][currCol - 1] == 1) { return -1; } else { currCol--; currRow++; } } else { currRow++; } } return currCol; } }
The output is
whilst it is supposed to be
The input here is