leetcode632 最小區間 堆

2021-10-08 18:20:07 字數 1259 閱讀 7788

你有 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...