870. 优势洗牌
目的:求数组A的新的排列方式
解题思路:对数组A排序,对数组B组建一个for循环就可以了
class Solution {
public:
vector<int> advantageCount(vector<int>& A, vector<int>& B)
{
vector<int>temp1 = A, temp2 = B;
sort(temp1.begin(), temp1.end());
vector<pair<int, int>> count;
vector<int>ans;
for (int i = 0; i < temp2.size(); i++)
{
bool confine = 0;//标识符,如果找到比数组B中的数大的值就置1
for (int j = 0; j < temp1.size(); j++)
{
if (temp1[j]>temp2[i])
{
ans.push_back(temp1[j]);
temp1.erase(find(temp1.begin(), temp1.end(), temp1[j]));
confine = 1;
break;
}
}
if (!confine)//没找到就把数组A中最小值赋给ans
{
ans.push_back(temp1[0]);
temp1.erase(temp1.begin());
}
}
return ans;
}
};