给定两个大小相等的数组 nums1 和 nums2,nums1 相对于 nums 的优势可以用满足 nums1[i] > nums2[i] 的索引 i 的数目来描述。

    返回 nums1 的任意排列,使其相对于 nums2 的优势最大化。
    示例 1:
    输入:nums1 = [2,7,11,15], nums2 = [1,10,4,11]
    输出:[2,11,7,15]
    示例 2:

    输入:nums1 = [12,24,8,32], nums2 = [13,25,32,11]
    输出:[24,32,8,12]

    1. /**
    2. * @param {number[]} A
    3. * @param {number[]} B
    4. * @return {number[]}
    5. */
    6. var advantageCount = function(A, B) {
    7. A.sort((a, b) => a - b)
    8. let res = []
    9. for(let b of B){
    10. let i = 0
    11. while(i < A.length && A[i] <= b) i++ // 找 大于b的 最小的牌
    12. if(i < A.length){ // 找到了
    13. res.push(A.splice(i, 1)[0])
    14. } else { // 找不到
    15. res.push(A.shift())
    16. }
    17. }
    18. return res
    19. }

    image.png