class Solution {
public int[] advantageCount(int[] nums1, int[] nums2) {
Arrays.sort(nums1);
Integer[] index=new Integer[nums1.length];
int[] res=new int[nums2.length];
for (int i = 0; i < nums1.length; i++) {
index[i]=i ;
}
Arrays.sort(index,(a,b)->(nums2[a]-nums2[b]));
int left=0,right=nums1.length-1;
for(int num:nums1){
int i=num>nums2[index[left]]?index[left++]:index[right--];
res[i]=num;
}
return res;
}
}