LeetCode #435 Non-overlapping Intervals 無重疊區(qū)間

435 Non-overlapping Intervals 無重疊區(qū)間

Description:
Given a collection of intervals, find the minimum number of intervals you need to remove to make the rest of the intervals non-overlapping.

Example:

Example 1:

Input: [[1,2],[2,3],[3,4],[1,3]]
Output: 1
Explanation: [1,3] can be removed and the rest of intervals are non-overlapping.

Example 2:

Input: [[1,2],[1,2],[1,2]]
Output: 2
Explanation: You need to remove two [1,2] to make the rest of intervals non-overlapping.

Example 3:

Input: [[1,2],[2,3]]
Output: 0
Explanation: You don't need to remove any of the intervals since they're already non-overlapping.

Note:

You may assume the interval's end point is always bigger than its start point.
Intervals like [1,2] and [2,3] have borders "touching" but they don't overlap each other.

題目描述:
給定一個(gè)區(qū)間的集合渗常,找到需要移除區(qū)間的最小數(shù)量苔咪,使剩余區(qū)間互不重疊泰偿。

注意:

可以認(rèn)為區(qū)間的終點(diǎn)總是大于它的起點(diǎn)休涤。
區(qū)間 [1,2] 和 [2,3] 的邊界相互“接觸”,但沒有相互重疊盒刚。

示例 :

示例 1:

輸入: [ [1,2], [2,3], [3,4], [1,3] ]

輸出: 1

解釋: 移除 [1,3] 后掀淘,剩下的區(qū)間沒有重疊砚亭。

示例 2:

輸入: [ [1,2], [1,2], [1,2] ]

輸出: 2

解釋: 你需要移除兩個(gè) [1,2] 來使剩下的區(qū)間沒有重疊曾棕。

示例 3:

輸入: [ [1,2], [2,3] ]

輸出: 0

解釋: 你不需要移除任何區(qū)間扣猫,因?yàn)樗鼈円呀?jīng)是無重疊的了。

思路:

按照區(qū)間的右端點(diǎn)排序, 取第一個(gè)的右端點(diǎn), 如果下一個(gè)端點(diǎn)的左端點(diǎn)在上一個(gè)端點(diǎn)的左邊, 說明要去掉這個(gè)區(qū)間, 否則更新新的右端點(diǎn)
時(shí)間復(fù)雜度O(nlgn), 空間復(fù)雜度O(1)

代碼:
C++:

class Solution 
{
public:
    int eraseOverlapIntervals(vector<vector<int>>& intervals) 
    {
        if (intervals.empty()) return 0;
        sort(intervals.begin(), intervals.end(), [](auto &a, auto &b) { return a.back() < b.back(); });
        int count = 0, right = intervals[0].back();
        for (int i = 1; i < intervals.size(); i++) 
        {
            if (right > intervals[i].front()) ++count;
            else right = intervals[i].back();
        }
        return count;
    }
};

Java:

class Solution {
    public int eraseOverlapIntervals(int[][] intervals) {
        if (intervals.length == 0) return 0;
        Arrays.sort(intervals, new Comparator<int[]>() { public int compare(int[] a, int[] b) { return a[1] - b[1]; } });
        int count = 0, right = intervals[0][1];
        for (int i = 1; i < intervals.length; i++) {
            if (right > intervals[i][0]) ++count;
            else right = intervals[i][1];
        }
        return count;
    }
}

Python:

class Solution:
    def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:
        if not intervals:
            return 0
        intervals.sort(key = lambda x : x[1])
        count, n, right = 0, len(intervals), intervals[0][1]
        for i in range(1, n):
            if right > intervals[i][0]:
                count += 1
            else:
                right = intervals[i][1]
        return count
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末翘地,一起剝皮案震驚了整個(gè)濱河市申尤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌子眶,老刑警劉巖瀑凝,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件序芦,死亡現(xiàn)場離奇詭異臭杰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)谚中,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門渴杆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寥枝,“玉大人,你說我怎么就攤上這事磁奖∧野荩” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵比搭,是天一觀的道長冠跷。 經(jīng)常有香客問我,道長身诺,這世上最難降的妖魔是什么蜜托? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮霉赡,結(jié)果婚禮上橄务,老公的妹妹穿的比我還像新娘。我一直安慰自己穴亏,他們只是感情好蜂挪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嗓化,像睡著了一般棠涮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刺覆,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天故爵,我揣著相機(jī)與錄音,去河邊找鬼隅津。 笑死诬垂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伦仍。 我是一名探鬼主播结窘,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼充蓝!你這毒婦竟也來了隧枫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤谓苟,失蹤者是張志新(化名)和其女友劉穎官脓,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涝焙,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卑笨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仑撞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赤兴。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡妖滔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桶良,到底是詐尸還是另有隱情座舍,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布陨帆,位于F島的核電站曲秉,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏疲牵。R本人自食惡果不足惜岸浑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瑰步。 院中可真熱鬧矢洲,春花似錦、人聲如沸缩焦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽袁滥。三九已至盖桥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間题翻,已是汗流浹背揩徊。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嵌赠,地道東北人塑荒。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像姜挺,于是被迫代替她去往敵國和親齿税。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容