又出算法题了,实在解不出来了

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

返回 A 的任意排列,使其相对于 B 的优势最大化。

示例 1:

输入:A = [2,7,11,15], B = [1,10,4,11]
输出:[2,11,7,15]
示例 2:

输入:A = [12,24,8,32], B = [13,25,32,11]
输出:[24,32,8,12]

阅读 1.8k
2 个回答
function comp(arr1,arr2){
        var arr=[];
        arr1.sort(function(a,b){
            return a-b;
        });
        arr2.forEach(function(item){
            var index=arr1.findIndex(function(_item){
                return _item>item;
            });
            if(index>-1){
                arr.push(arr1.splice(index,1)[0]);
            }else{
                arr.push(arr1.splice(0,1)[0]);
            }
        });
        return arr;
    }
    console.log(comp([2,7,11,15],[1,10,4,11]));
    console.log(comp([12,24,8,32],[13,25,32,11]));
A = [12, 24, 8, 32], B = [13, 25, 32, 11]
A.sort((a, b) => b - a)
let A1 = [...B].sort((a, b) => b - a).reduce((res, val) => {
  res[B.indexOf(val)] = A[0] > val ? A.shift() : A.pop()
  return res
}, new Array(A.length))
console.log(A1)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题