870 優勢洗牌

2021-08-25 14:39:44 字數 1031 閱讀 7315

給定兩個大小相等的陣列ab,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 <= a.length = b.length <= 100000 <= a[i] <= 10^90 <= b[i] <= 10^9

思路:我的思路是用乙個set來維護陣列a的有序性,從b的末尾開始,每次找set中剛好大於等於b在此處的值,如果沒有找到,就把最小的那個值放在a對應的位置,從set中刪除該元素,如果找到了,那麼就放在a對應位置。

比較像田忌賽馬的策略 下馬對上馬 上馬對中馬 中馬對下馬

可惜的是系統提示我記憶體超出限制了,可能是set占用的記憶體比較大的原因

另外的做法就是將a b分別複製乙份 並做排序 為c d

然後每次比較c d中的元素, 如果c的元素大於d,那麼都比較下一位

如果c中的元素小於等於d中的元素,那就把它放在 temp陣列的末尾

c++,d保持不變

code:

class solution 

else

}for (int i = 0; i < a.size(); i++)}}

return res;

}};

870 優勢洗牌(貪心)

1.問題描述 給定兩個大小相等的陣列 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,...

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 的優勢最大化。示例 1 輸入 a 2,7,11,15 b 1,10,4,11 輸出 2,11,7,15 示例 2 輸入 a 12,24,8,32 b ...