代码如下:
class Solution {
public:
static bool cmp(pair<int,int>a, pair<int,int>b)
{
return a.first+a.second <= b.first+b.second;
}
vector<vector<int>> kSmallestPairs(vector<int>& nums1, vector<int>& nums2, int k) {
//暴力解法
vector<pair<int,int>> num;
for(int i = 0; i < nums1.size(); i++)
for(int j = 0; j < nums2.size(); j++)
num.push_back({nums1[i], nums2[j]});
sort(num.begin(), num.end(), cmp);
vector<vector<int>> res;
for(int i = 0; i < num.size() && i < k; i++)
{
vector<int> t = {num[i].first, num[i].second};
res.push_back(t);
}
return res;
}
};
输入:
[0,0,0,0,0,2,2,2,2]
[-3,22,35,56,76]
22
报错:
Line 5: Char 23: runtime error: signed integer overflow: -1094795586 + -1094795586 cannot be represented in type 'int' (solution.cpp)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior prog_joined.cpp:14:23
想不通的点:输入数据相加咋就超有符号整型范围了呢?