給定兩個大小相等的陣列 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]
分析:典型貪心演算法: a的最大值大於b[的最大值就放到b最大值的位置,否則就選擇乙個最小的放在這個位置(1)排序:將a和b從大到小排序,但是要保留b元素原來的位置。
(2) 雙指標遍歷,大於b就放在b原來的位置,否則放a中最小的元素
大體就是這麼個思想,我也說不明白,看**吧
void sort(int* a,int* b,int l,int r) //特殊快速排序
a[i]=k;
if(b) b[i]=t;
sort(a,b,l,i-1);
sort(a,b,i+1,r);
}int* advantagecount(int* a, int asize, int* b, int bsize, int* returnsize)
else
k++;
}*returnsize=asize;
return c;
}
Leetcode 870 優勢洗牌
題目描述 給定兩個大小相等的陣列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...
leetcode 870 優勢洗牌
題目描述 給定兩個大小相等的陣列 a 和 b,a 相對於 b 的優勢可以用滿足 a i b i 的索引 i 的數目來描述。返回 a 的任意排列,使其相對於 b 的優勢最大化。我的思路 這道題思路蠻好想的,就是每次貪心的找a中最小的大於當前b中元素的元素,聽起來有點繞?那給你四個字 田忌賽馬 是的,這...
LeetCode打卡 870 優勢洗牌
給定兩個大小相等的陣列 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 ...