题解 | #最高售价的两只牛#
最高售价的两只牛
https://www.nowcoder.com/practice/8e4a09d5f63d4298a8507decf5d12490
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pricesA int整型vector
* @param pricesB int整型vector
* @param k int整型
* @return int整型vector<vector<>>
*/
vector<vector<int> > kPairsWithLargestSums(vector<int>& pricesA, vector<int>& pricesB, int k)
{
// write code here
vector<pair<int,int>> temp;
for (int i = 0;i < pricesA.size();++i)
{
for (int j = 0;j < pricesB.size();++j)
{
temp.emplace_back(pricesA[i],pricesB[j]);
}
}
sort(temp.begin(), temp.end(), [](const pair<int, int>& a, const pair<int, int>& b)
{
if (a.first + a.second > b.first + b.second)
{
return true; // 第一个条件成立,返回 true
}
else if (a.first + a.second < b.first + b.second)
{
return false; // 第一个条件不成立,返回 false
}
else if (a.first > b.first)
{
return true; // 和相等,比较第一个元素,如果 a 的第一个元素更大,返回 true
}
else
{
return false; // 和相等,a 的第一个元素不大于 b 的第一个元素,返回 false
}
});
vector<vector<int>> result;
for (int i = 0;i < k;++i)
{
auto a = temp[i];
vector<int> ans;
ans.push_back(a.first);
ans.push_back(a.second);
result.push_back(ans);
}
return result;
}
};
组合起来,挑选和最大的呗