你有 k 個公升序排列的整數陣列。找到乙個最小區間,使得 k 個列表中的每個列表至少有乙個數包含在其中。
我們定義如果 b-a < d-c 或者在 b-a == d-c 時 a < c,則區間 [a,b] 比 [c,d] 小。
示例 1:
輸入:[[
4,10,
15,24,
26],[
0,9,
12,20]
,[5,
18,22,
30]]輸出:[20
,24]解釋:
列表 1:[4,
10,15,
24,26],24 在區間 [20,
24] 中。
列表 2:[0,
9,12,
20],20 在區間 [20,
24] 中。
列表 3:[5,
18,22,
30],22 在區間 [20,
24] 中。
注意:
class
solution};
struct cmp};
vector<
int> res;
int max_pos =0;
priority_queue
, cmp> pq;
pq.push
(node(0
, nums[0]
[0])
);for(
int i =
1; i < nums.
size()
;++i)
res =
;while(1
);}
nums[less_pos]
.erase
(nums[less_pos]
.begin()
);if(nums[less_pos]
.size()
==0)break
; pq.
pop();
pq.push
(node
(less_pos, nums[less_pos][0
]));
if(nums[less_pos][0
]> nums[max_pos][0
])max_pos = less_pos;
}return res;}}
;
LeetCode 632 最小區間(雙指標)
題意 你有 k 個 非遞減排列 的整數列表。找到乙個 最小 區間,使得 k 個列表中的每個列表至少有乙個數包含在其中。我們定義如果 b a d c 或者在 b a d c 時 a c,則區間 a,b 比 c,d 小。示例 1 輸入 nums 4,10,15,24,26 0,9,12,20 5,18,...
leetcode632 最小區間(堆 多指標)
你有 k 個公升序排列的整數陣列。找到乙個最小區間,使得 k 個列表中的每個列表至少有乙個數包含在其中。我們定義如果 b a d c 或者在 b a d c 時 a c,則區間 a,b 比 c,d 小。示例 1 輸入 4,10,15,24,26 0,9,12,20 5,18,22,30 輸出 20,...
演算法題 二 之 最小區間
你有 k 個公升序排列的整數列表。找到乙個最小區間,使得 k 個列表中的每個列表至少有乙個數包含在其中。我們定義如果 b a d c 或者在 b a d c 時 a c,則區間 a,b 比 c,d 小。例如 輸入 4,10,15,24,26 0,9,12,20 5,18,22,30 輸出 20,24...