Minimum Domino Removals
Problem statement
A domino is a rectangular tile divided into two square parts. There are between 1 and 6 dots on each of the parts. There is an array A of length 2*N, representing N dominoes. Dominoes are arranged in a line in the order in which they appear in array A. The number of dots on the left and the right parts of the K-th domino are A[2*K] and A[2*K+1], respectively. For example, an array A = [2, 4, 1, 3, 4, 6, 2, 4, 1, 6] represents a sequence of five domino tiles: (2,4), (1,3), (4,6), (2,4), and (1,6).
In a correct domino sequence, each pair of neighboring tiles should have the same number of dots on their adjacent parts. For example, tiles (2, 4) and (4, 6) form a correct domino sequence and tiles (2, 4) and (1, 3) do not. What is the minimum number of domino tiles that must be removed from the sequence so that the remaining tiles form a correct domino sequence? It is not allowed to reorder or rotate the dominoes.
Given an array A representing a sequence of N domino tiles, returns the minimum number of tiles that must be removed so that the remaining tiles form a correct domino sequence.
Function
minNumTiles(A: int[]) → intExamples
Example 1
A = [2, 4, 1, 3, 4, 6, 2, 4, 1, 6]return = 3The second and the last two dominoes should be removed. After this, the remaining dominoes are (2, 4) and (4, 6).
Example 2
A = [5, 1, 2, 6, 6, 1, 3, 1, 4, 3, 4, 3, 4, 6, 1, 2, 4, 1, 6, 2]return = 7
There are 10 dominoes. Keep (2, 6), (6, 1), and (1, 2). These three form a correct sequence, so the other 7 dominoes are removed.
Example 3
A = [1, 5, 3, 3, 1, 3]return = 2No two dominoes can be connected without rotating or reordering them. Keep any one domino and remove the other two.
Constraints
🍇🍇