题解 | #最高售价的两只牛#
最高售价的两只牛
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; } };
组合起来,挑选和最大的呗