Class Solution
-
- All Implemented Interfaces:
public final class Solution
2826 - Sorting Three Groups\.
Medium
You are given a 0-indexed integer array
nums
of lengthn
.The numbers from
0
ton - 1
are divided into three groups numbered from1
to3
, where numberi
belongs to groupnums[i]
. Notice that some groups may be empty.You are allowed to perform this operation any number of times:
Pick number
x
and change its group. More formally, changenums[x]
to any number from1
to3
.
A new array
res
is constructed using the following procedure:Sort the numbers in each group independently.
Append the elements of groups
1
,2
, and3
tores
in this order.
Array
nums
is called a beautiful array if the constructed arrayres
is sorted in non-decreasing order.Return the minimum number of operations to make
nums
a beautiful array.Example 1:
Input: nums = 2,1,3,2,1
Output: 3
Explanation: It's optimal to perform three operations:
change nums0 to 1.
change nums2 to 1.
change nums3 to 1.
After performing the operations and sorting the numbers in each group, group 1 becomes equal to 0,1,2,3,4 and group 2 and group 3 become empty. Hence, res is equal to 0,1,2,3,4 which is sorted in non-decreasing order.
It can be proven that there is no valid sequence of less than three operations.
Example 2:
Input: nums = 1,3,2,1,3,3
Output: 2
Explanation: It's optimal to perform two operations:
change nums1 to 1.
change nums2 to 1.
After performing the operations and sorting the numbers in each group, group 1 becomes equal to 0,1,2,3, group 2 becomes empty, and group 3 becomes equal to 4,5. Hence, res is equal to 0,1,2,3,4,5 which is sorted in non-decreasing order.
It can be proven that there is no valid sequence of less than two operations.
Example 3:
Input: nums = 2,2,2,2,3,3
Output: 0
Explanation: It's optimal to not perform operations.
After sorting the numbers in each group, group 1 becomes empty, group 2 becomes equal to 0,1,2,3 and group 3 becomes equal to 4,5. Hence, res is equal to 0,1,2,3,4,5 which is sorted in non-decreasing order.
Constraints:
1 <= nums.length <= 100
1 <= nums[i] <= 3
-
-
Constructor Summary
Constructors Constructor Description Solution()
-
Method Summary
Modifier and Type Method Description final Integer
minimumOperations(List<Integer> nums)
-
-
Method Detail
-
minimumOperations
final Integer minimumOperations(List<Integer> nums)
-
-
-
-