Find K Pairs with Smallest Sums LeetCode solution in C++
1class Solution {2public:3vector<vector<int>> kSmallestPairs(vector<int> &nums1, vector<int> &nums2, int k) {4priority_queue<pair<int, pair<int, int>>> pq;5int m = nums1.size(), n = nums2.size();67for (int i = 0; i < m; i++) {8for (int j = 0; j < n; j++) {9int sum = nums1[i] + nums2[j];10if (pq.size() < k) {11pq.push({sum, {nums1[i], nums2[j]}});12} else if (sum < pq.top().first) {13pq.pop();14pq.push({sum, {nums1[i], nums2[j]}});15} else16break;17}18}1920vector<vector<int>> ans;21while (!pq.empty()) {22auto p = pq.top().second;23pq.pop();2425ans.push_back({p.first, p.second});26}2728return ans;29}30};