LeetCode 中級 - 優勢洗牌(870)
阿新 • • 發佈:2019-03-31
false ack 滿足 leet 最小 spa pub 索引 nta
給定兩個大小相等的數組 A
和 B
,A 相對於 B 的優勢可以用滿足 A[i] > B[i]
的索引 i
的數目來描述。
返回 A
的任意排列,使其相對於 B
的優勢最大化。
示例 2:
輸入:A = [12,24,8,32], B = [13,25,32,11] 輸出:[24,32,8,12]
思路: 類似田忌賽馬,先將A排序。
class Solution { public: vector<int> advantageCount(vector<int>& A, vector<int>& B) { vector<int> c;//存入符合要求的序列 sort(A.begin(),A.end());//先將A按遞增排序 bool flag; int index=0; while(!A.empty()&&index<B.size()) { flag=false; for(int i=0;i<A.size();i++) { //找到第一個大於B[index]的位置 if(A[i]>B[index]) { flag = true; index++; c.push_back(A[i]);//將其放入c中 A.erase(A.begin()+i);//移除該位置的值 break;//跳出循環 } } if(!flag)//若都比B[index]小,將A中最小的壓入c{ c.push_back(A[0]); A.erase(A.begin()); index++; } } return c; } };
LeetCode 中級 - 優勢洗牌(870)