This question is about implementing a basic elimination algorithm for Candy Crush.
Given a 2D integer array
board
representing the grid of candy, different positive integers
board[i][j]
represent different types of candies. A value of
board[i][j] = 0
represents that the cell at position
(i, j)
is empty. The given board represents the state of the game following the player's move. Now, you need to restore the board to a
stable state
by crushing candies according to the following rules:
You need to perform the above rules until the board becomes stable, then return the current board.
Example:
Input: board = [[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]] Output: [[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]] Explanation:
Note:
board
will be in the range [3, 50].
board[i]
will be in the range [3, 50].
board[i][j]
will initially start as an integer in the range [1, 2000].
这个问题是实现一个简单的消除算法。
给定一个二维整数数组 board
代表糖果所在的方格,不同的正整数 board[i][j]
代表不同种类的糖果,如果 board[i][j] = 0
代表 (i, j)
这个位置是空的。给定的方格是玩家移动后的游戏状态,现在需要你根据以下规则粉碎糖果,使得整个方格处于稳定状态并最终输出。
你需要模拟上述规则并使整个方格达到稳定状态,并输出。
样例 :
输入: board = [[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]] 输出: [[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]]
解释:
注释 :
board 数组的行数区间是 [3, 50]。
board[i] 数组的长度区间(即 board 数组的列数区间)是 [3, 50]。
每个 board[i][j] 初始整数范围是 [1, 2000]。