1706. Where Will the Ball Fall Medium
1/**
2 * [1706] Where Will the Ball Fall
3 *
4 * You have a 2-D grid of size m x n representing a box, and you have n balls. The box is open on the top and bottom sides.
5 * Each cell in the box has a diagonal board spanning two corners of the cell that can redirect a ball to the right or to the left.
6 *
7 * A board that redirects the ball to the right spans the top-left corner to the bottom-right corner and is represented in the grid as 1.
8 * A board that redirects the ball to the left spans the top-right corner to the bottom-left corner and is represented in the grid as -1.
9 *
10 * We drop one ball at the top of each column of the box. Each ball can get stuck in the box or fall out of the bottom. A ball gets stuck if it hits a "V" shaped pattern between two boards or if a board redirects the ball into either wall of the box.
11 * Return an array answer of size n where answer[i] is the column that the ball falls out of at the bottom after dropping the ball from the i^th column at the top, or -1 if the ball gets stuck in the box.
12 *
13 * Example 1:
14 * <img alt="" src="https://assets.leetcode.com/uploads/2019/09/26/ball.jpg" style="width: 500px; height: 385px;" />
15 *
16 * Input: grid = [[1,1,1,-1,-1],[1,1,1,-1,-1],[-1,-1,-1,1,1],[1,1,1,1,-1],[-1,-1,-1,-1,-1]]
17 * Output: [1,-1,-1,-1,-1]
18 * Explanation: This example is shown in the photo.
19 * Ball b0 is dropped at column 0 and falls out of the box at column 1.
20 * Ball b1 is dropped at column 1 and will get stuck in the box between column 2 and 3 and row 1.
21 * Ball b2 is dropped at column 2 and will get stuck on the box between column 2 and 3 and row 0.
22 * Ball b3 is dropped at column 3 and will get stuck on the box between column 2 and 3 and row 0.
23 * Ball b4 is dropped at column 4 and will get stuck on the box between column 2 and 3 and row 1.
24 *
25 * Example 2:
26 *
27 * Input: grid = [[-1]]
28 * Output: [-1]
29 * Explanation: The ball gets stuck against the left wall.
30 *
31 * Example 3:
32 *
33 * Input: grid = [[1,1,1,1,1,1],[-1,-1,-1,-1,-1,-1],[1,1,1,1,1,1],[-1,-1,-1,-1,-1,-1]]
34 * Output: [0,1,2,3,4,-1]
35 *
36 *
37 * Constraints:
38 *
39 * m == grid.length
40 * n == grid[i].length
41 * 1 <= m, n <= 100
42 * grid[i][j] is 1 or -1.
43 *
44 */
45pub struct Solution {}
46
47// problem: https://leetcode.com/problems/where-will-the-ball-fall/
48// discuss: https://leetcode.com/problems/where-will-the-ball-fall/discuss/?currentPage=1&orderBy=most_votes&query=
49
50// submission codes start here
51
52impl Solution {
53 pub fn find_ball(grid: Vec<Vec<i32>>) -> Vec<i32> {
54 vec![]
55 }
56}
57
58// submission codes end
59
60#[cfg(test)]
61mod tests {
62 use super::*;
63
64 #[test]
65 fn test_1706() {
66 }
67}
68
Back
© 2025 bowen.ge All Rights Reserved.