Class Solution
-
- All Implemented Interfaces:
public final class Solution
3245 - Alternating Groups III\.
Hard
There are some red and blue tiles arranged circularly. You are given an array of integers
colors
and a 2D integers arrayqueries
.The color of tile
i
is represented bycolors[i]
:colors[i] == 0
means that tilei
is red.colors[i] == 1
means that tilei
is blue.
An alternating group is a contiguous subset of tiles in the circle with alternating colors (each tile in the group except the first and last one has a different color from its adjacent tiles in the group).
You have to process queries of two types:
<code>queriesi = 1, size<sub>i</sub></code>, determine the count of alternating groups with size <code>size<sub>i</sub></code>.
<code>queriesi = 2, index<sub>i</sub>, color<sub>i</sub></code>, change <code>colorsindex<sub>i</sub></code> to <code>color<sub>i</sub></code>.
Return an array
answer
containing the results of the queries of the first type in order.Note that since
colors
represents a circle , the first and the last tiles are considered to be next to each other.Example 1:
Input: colors = 0,1,1,0,1, queries = \[\[2,1,0],1,4]
Output: 2
Explanation:
First query:
Change
colors[1]
to 0.Second query:
Count of the alternating groups with size 4:
Example 2:
Input: colors = 0,0,1,0,1,1, queries = \[\[1,3],2,3,0,1,5]
Output: 2,0
Explanation:
First query:
Count of the alternating groups with size 3:
Second query:
colors
will not change.Third query: There is no alternating group with size 5.
Constraints:
<code>4 <= colors.length <= 5 * 10<sup>4</sup></code>
0 <= colors[i] <= 1
<code>1 <= queries.length <= 5 * 10<sup>4</sup></code>
queries[i][0] == 1
orqueries[i][0] == 2
For all
i
that:
-
-
Constructor Summary
Constructors Constructor Description Solution()
-