leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
0632.cpp (802B)
0 class Solution {
1 public:
2 vector<int> smallestRange(const vector<vector<int>> &nums) const {
3 using ti = tuple<int, int, int>;
4 priority_queue<ti, vector<ti>, greater<ti>> pq;
5 int maxi = -1;
7 for (int i = 0; i < size(nums); i++) {
8 pq.emplace(nums[i][0], i, 0);
9 maxi = max(maxi, nums[i][0]);
10 }
12 vector<int> res = {0, INT_MAX};
13 while (!pq.empty()) {
14 const auto [mini, list, elem] = pq.top();
15 pq.pop();
17 if (maxi - mini < res[1] - res[0]) res = {mini, maxi};
18 if (elem + 1 == size(nums[list])) break;
20 const int next = nums[list][elem + 1];
21 pq.emplace(next, list, elem + 1);
22 maxi = max(maxi, next);
23 }
25 return res;
26 }
27 };