题目
给定两个长度相等的数组 nums1 和 nums2,nums1 相对于 nums2 的优势可以用满足 nums1[i] > nums2[i] 的索引 i 的数目来描述。
返回 nums1 的任意排列,使其相对于 nums2 的优势最大化。
示例 1:
输入:nums1 = [2,7,11,15], nums2 = [1,10,4,11]
输出:[2,11,7,15]
解
class Solution {public int[] advantageCount(int[] nums1, int[] nums2) {int n = nums1.length;Arrays.sort(nums1);Integer[] index = new Integer[n];for (int i = 0; i < n; i++) {index[i] = i;}Arrays.sort(index, (a, b) -> {return nums2[a] - nums2[b];});int left = 0;int right = n - 1;int[] result = new int[n];for (int num : nums1) {int i = num > nums2[index[left]] ? index[left++] : index[right--];result[i] = num;}return result;}
}