LeetCode 870. 優勢シャッフル(C++)

1633 ワード

等しい2つの大きさの配列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 <= A.length = B.length <= 10000 0 <= A[i] <= 10^9 0 <= B[i] <= 10^9 C++
class Solution {
public:
    vector advantageCount(vector& A, vector& B) 
    {
        vector res;
        int n=A.size();
        vector tmpA=A;
        vector tmpB=B;
        sort(tmpA.begin(),tmpA.end());
        sort(tmpB.begin(),tmpB.end());
        map> vec;
        vector other;
        int k=0;
        int flag=0;
        for(int i=0;itmpB[i])
                {
                    vec[tmpB[i]].push_back(tmpA[j]);
                    flag=1;
                }
                else
                {
                    other.push_back(tmpA[j]);
                }
                if(flag)
                {
                    flag=0;
                    k=j+1;
                    break;
                }
            }
        }
        k=0;
        for(int i=0;i