Class Solution
-
- All Implemented Interfaces:
public final class Solution3480 - Maximize Subarrays After Removing One Conflicting Pair.
Hard
You are given an integer
nwhich represents an arraynumscontaining the numbers from 1 tonin order. Additionally, you are given a 2D arrayconflictingPairs, whereconflictingPairs[i] = [a, b]indicates thataandbform a conflicting pair.Remove exactly one element from
conflictingPairs. Afterward, count the number of non-empty subarrays ofnumswhich do not contain bothaandbfor any remaining conflicting pair[a, b].Return the maximum number of subarrays possible after removing exactly one conflicting pair.
Example 1:
Input: n = 4, conflictingPairs = [2,3,1,4]
Output: 9
Explanation:
Remove
[2, 3]fromconflictingPairs. Now,conflictingPairs = [[1, 4]].There are 9 subarrays in
numswhere[1, 4]do not appear together. They are[1],[2],[3],[4],[1, 2],[2, 3],[3, 4],[1, 2, 3]and[2, 3, 4].The maximum number of subarrays we can achieve after removing one element from
conflictingPairsis 9.
Example 2:
Input: n = 5, conflictingPairs = [1,2,2,5,3,5]
Output: 12
Explanation:
Remove
[1, 2]fromconflictingPairs. Now,conflictingPairs = [[2, 5], [3, 5]].There are 12 subarrays in
numswhere[2, 5]and[3, 5]do not appear together.The maximum number of subarrays we can achieve after removing one element from
conflictingPairsis 12.
Constraints:
<code>2 <= n <= 10<sup>5</sup></code>
1 <= conflictingPairs.length <= 2 * nconflictingPairs[i].length == 21 <= conflictingPairs[i][j] <= nconflictingPairs[i][0] != conflictingPairs[i][1]