public class ZigZagBallFallsTry{ public int[] FindBall(int[][] grid) { int m = grid.Length - 1; int n = grid[0].Length - 1; int[] result = new int[grid[0].Length]; // Initialize result array with correct size for (int row = 0; row <= m; row++) // Loop until row <= m { result[row] = RecordBallMovements(grid, m, n); // Pass row index to RecordBallMovements } return result; } private int RecordBallMovements(int[][] grid, int m, int n) { int helperCol = 0; // Initialize helperCol here for (int helperRow = 0; helperRow < m; helperRow++) // Loop until helperRow <= row { for (; helperCol >= 0 && helperCol <= n; helperCol++) // Correct loop condition and increment helperCol { if (grid[helperRow][helperCol] == 1) { if (helperCol == n || grid[helperRow][helperCol + 1] == -1) // Use == instead of > { return -1; break; } } else if (grid[helperRow][helperCol] == -1) { if (helperCol == 0 || grid[helperRow][helperCol - 1] == 1) // Use == instead of < { return -1; break; } helperCol--; // Decrement helperCol for left movement } } } return helperCol; }}
public class ZigZagBallFallsTry{ public int[] FindBall(int[][] grid) { int m = grid.Length - 1; int n = grid[0].Length - 1; int[] result = new int[grid[0].Length]; // Initialize result array with correct size for (int row = 0; row <= m; row++) // Loop until row <= m { result[row] = RecordBallMovements(grid, m, n); // Pass row index to RecordBallMovements } return result; } private int RecordBallMovements(int[][] grid, int m, int n) { int helperCol = 0; // Initialize helperCol here for (int helperRow = 0; helperRow < m; helperRow++) // Loop until helperRow <= row { for (; helperCol >= 0 && helperCol <= n; helperCol++) // Correct loop condition and increment helperCol { if (grid[helperRow][helperCol] == 1) { if (helperCol == n || grid[helperRow][helperCol + 1] == -1) // Use == instead of > { return -1; break; } } else if (grid[helperRow][helperCol] == -1) { if (helperCol == 0 || grid[helperRow][helperCol - 1] == 1) // Use == instead of < { return -1; break; } helperCol--; // Decrement helperCol for left movement } } } return helperCol; }}
The output for this code is
The output for this code is
==> -1 ==> -1 ==> -1 ==> -1 ==> -1
But it was supposed to be
But it was supposed to be
==> 1 ==> -1 ==> -1 ==> -1 ==> -1` instead
I don't understand why my code stores -1 instead of 1 at the first index on my array. Could anyone kindly point me in the right direction?