题解 | #最高售价的两只牛#
最高售价的两只牛
https://www.nowcoder.com/practice/8e4a09d5f63d4298a8507decf5d12490
知识点
贪心,排序
思路
可以把这题理解为,现将两组奶牛两两组合,按总价降序为第一关键字,A的价格降序为第二关键字排序,然后取出前K个作为答案
代码c++
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pricesA int整型vector
* @param pricesB int整型vector
* @param k int整型
* @return int整型vector<vector<>>
*/
struct cow {
int a, b, sum;
} aa[10000006];
static bool cmp(cow a, cow b) {
if (a.sum != b.sum)return a.sum > b.sum;
else return a.a > b.a;
}
vector<vector<int> > kPairsWithLargestSums(vector<int>& pricesA,
vector<int>& pricesB, int k) {
// write code here
vector<vector<int>>ans;
cow c;
int idx = 0;
for (auto v : pricesA) {
for (auto j : pricesB) {
c.a = v;
c.b = j;
c.sum = v + j;
aa[idx] = c;
idx++;
}
}
sort(aa, aa + idx, cmp);
for(int i=0;i<k;i++)
{
vector<int>t={aa[i].a,aa[i].b};
ans.push_back(t);
}
return ans;
}
};