|
1 | 1 | package com.fishercoder.solutions;
|
2 | 2 |
|
3 |
| -/** |
4 |
| - * 723. Candy Crush |
5 |
| - * |
6 |
| - * This question is about implementing a basic elimination algorithm for Candy Crush. |
7 |
| - * Given a 2D integer array board representing the grid of candy, different positive integers board[i][j] |
8 |
| - * represent different types of candies. |
9 |
| - * A value of board[i][j] = 0 represents that the cell at position (i, j) is empty. |
10 |
| - * The given board represents the state of the game following the player's move. |
11 |
| - * Now, you need to restore the board to a stable state by crushing candies according to the following rules: |
12 |
| - * |
13 |
| - * If three or more candies of the same type are adjacent vertically or horizontally, |
14 |
| - * "crush" them all at the same time - these positions become empty. |
15 |
| - * After crushing all candies simultaneously, if an empty space on the board has candies on top of itself, |
16 |
| - * then these candies will drop until they hit a candy or bottom at the same time. |
17 |
| - * (No new candies will drop outside the top boundary.) |
18 |
| - * After the above steps, there may exist more candies that can be crushed. |
19 |
| - * If so, you need to repeat the above steps. |
20 |
| - * If there does not exist more candies that can be crushed (ie. the board is stable), then return the current board. |
21 |
| - * You need to perform the above rules until the board becomes stable, then return the current board. |
22 |
| -
|
23 |
| - Example 1: |
24 |
| -
|
25 |
| - Input: |
26 |
| - board = |
27 |
| - [[110,5,112,113,114],[210,211,5,213,214],[310,311,3,313,314],[410,411,412,5,414],[5,1,512,3,3],[610,4,1,613,614],[710,1,2,713,714],[810,1,2,1,1],[1,1,2,2,2],[4,1,4,4,1014]] |
28 |
| -
|
29 |
| - Output: |
30 |
| - [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[110,0,0,0,114],[210,0,0,0,214],[310,0,0,113,314],[410,0,0,213,414],[610,211,112,313,614],[710,311,412,613,714],[810,411,512,713,1014]] |
31 |
| - Explanation: |
32 |
| -
|
33 |
| - Note: |
34 |
| - The length of board will be in the range [3, 50]. |
35 |
| - The length of board[i] will be in the range [3, 50]. |
36 |
| - Each board[i][j] will initially start as an integer in the range [1, 2000]. |
37 |
| -
|
38 |
| - */ |
39 | 3 | public class _723 {
|
40 | 4 | public static class Solution1 {
|
41 |
| - /**credit: https://leetcode.com/articles/candy-crush/*/ |
| 5 | + /** |
| 6 | + * credit: https://leetcode.com/articles/candy-crush/ |
| 7 | + */ |
42 | 8 | public int[][] candyCrush(int[][] board) {
|
43 | 9 | int row = board.length;
|
44 | 10 | int col = board[0].length;
|
|
0 commit comments