LC每日一题|20240605 - 3072. 将元素分配到两个数组中 II
给你一个下标从 1 开始、长度为
n的整数数组nums。现定义函数
greaterCount,使得greaterCount(arr, val)返回数组arr中 严格大于val的元素数量。你需要使用
n次操作,将nums的所有元素分配到两个数组arr1和arr2中。在第一次操作中,将nums[1]追加到arr1。在第二次操作中,将nums[2]追加到arr2。之后,在第i次操作中:
- 如果
greaterCount(arr1, nums[i]) > greaterCount(arr2, nums[i]),将nums[i]追加到arr1。- 如果
greaterCount(arr1, nums[i]) < greaterCount(arr2, nums[i]),将nums[i]追加到arr2。- 如果
greaterCount(arr1, nums[i]) == greaterCount(arr2, nums[i]),将nums[i]追加到元素数量较少的数组中。- 如果仍然相等,那么将
nums[i]追加到arr1。连接数组
arr1和arr2形成数组result。例如,如果arr1 == [1,2,3]且arr2 == [4,5,6],那么result = [1,2,3,4,5,6]。返回整数数组
result。
提示:
3 <= n <= 10^51 <= nums[i] <= 10^9
题目等级:Hard
解题思路
线段树,对我来说有点超纲了,直接cv了,后期再补~