leetcode-區間問題總結(56,252,253,1094,435,452,646

LLM1602發表於2020-03-19

一:區間合併問題:

1:leetcode 56(合併區間)

https://leetcode-cn.com/problems/merge-intervals/

題目:

思路:先根據開始時間排序,再比較當前區間的右端點與下一區間的左端點大小,進行合併。

程式碼:

2:252(會議室1)

https://leetcode-cn.com/problems/meeting-rooms/

題目:

思路:只要有區間可以合併就return false,即同56一樣,只要遇到下一區間的左端點小於當前區間的結束端點,就表示有重複

程式碼:

 

二:區間容量大小問題

1:253(會議室2)

https://leetcode-cn.com/problems/meeting-rooms-ii/

題目:

思路:相當於將這些區間全放在數軸上,數最大的左端點個數(遇到右結點要-1,),因為這表明有這麼多個衝突,也就是需要多少個會議室。

程式碼:

2:1094(拼車,類似253)

https://leetcode-cn.com/problems/car-pooling/

題目:

思路:同253,多個判斷當前人數與容量

程式碼:

三:區間衝突問題

1:435(無重疊區間)

https://leetcode-cn.com/problems/non-overlapping-intervals/

題目:

思路:將區間進行排列,在進行區間遍歷時,遇到重疊的區間,計數,並選擇保持小的右端點,因為只要這樣才能對後續區間發生衝突的可能性更小,也就達到“移除最小區間數量”

程式碼:

 

2:452(引爆氣球)

https://leetcode-cn.com/problems/minimum-number-of-arrows-to-burst-balloons/

題目:

思路:基本同435,只不過要理解好題意,其實可以不用啥氣球直徑啥的,可以直接當作起始,結尾區間來處理,不能合併則箭的數量++

程式碼:

3:646(同452)

https://leetcode-cn.com/problems/maximum-length-of-pair-chain/

題目:

程式碼:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相關文章