Class Solution
-
- All Implemented Interfaces:
public final class Solution3245 - Alternating Groups III.
Hard
There are some red and blue tiles arranged circularly. You are given an array of integers
colorsand a 2D integers arrayqueries.The color of tile
iis represented bycolors[i]:colors[i] == 0means that tileiis red.colors[i] == 1means that tileiis 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
answercontaining the results of the queries of the first type in order.Note that since
colorsrepresents 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:
colorswill 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] == 1orqueries[i][0] == 2For all
ithat:
-
-
Constructor Summary
Constructors Constructor Description Solution()
-