Description
You are given two integer arrays nums1 and nums2 both of the same length. The advantage of nums1 with respect to nums2 is the number of indices i for which nums1[i] > nums2[i].
Return any permutation of nums1 that maximizes its advantage with respect to nums2.
Β
Example 1:
Input: nums1 = [2,7,11,15], nums2 = [1,10,4,11] Output: [2,11,7,15]
Example 2:
Input: nums1 = [12,24,8,32], nums2 = [13,25,32,11] Output: [24,32,8,12]
Β
Constraints:
1 <= nums1.length <= 105nums2.length == nums1.length0 <= nums1[i], nums2[i] <= 109
Solution
Python3
class Solution:
def advantageCount(self, A, B):
A = sorted(A)
take = collections.defaultdict(list)
for b in sorted(B)[::-1]:
if b < A[-1]:
take[b].append(A.pop())
return [(take[b] or A).pop() for b in B]