Leetcode435 無重疊區間(C語言)

2021-10-02 22:37:06 字數 973 閱讀 4348

演算法-貪心思想:演算法與資料結構參考

題目:

給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。區間的終點總是大於它的起點。區間 [1,2] 和 [2,3] 的邊界相互「接觸」,但沒有相互重疊。例:

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

輸出: 1

解釋: 移除 [1,3] 後,剩下的區間沒有重疊。

思路:

將各區間按照起始點從小到大排序;

從頭遍歷各區間:

(1) 如果當前區間和上乙個區間有重疊,count++;

(2) 如果當前區間和上乙個區間無重疊,pre = current;

返回count;

**:

int

selfcompare

(const

void

*p,const

void

*q)else

}//按第乙個排列,若第乙個數相等,按後乙個數排列

#define no_overlap 0

#define overlap_same_start 1

#define overlap_locate_in 2

#define overlap_locate_over 3

static

intisoverlap

(int

**intervals,

int i,

int pre)

interaseoverlapintervals

(int

** intervals,

int intervalssize,

int* intervalscolsize)

i++;}

return ret;

}

leetcode 435 無重疊區間

給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。輸入 1,2 2,3 3,4 1,3 輸出 1 解釋 移除 1,3 後,剩下的區間沒有重疊。輸入 1,2 1,2 1,2 輸出 2 解釋 你需要移除兩個 1,2 來使剩下的區間沒有重疊。輸入 1,2 2,3 輸出 0 解釋 你不需要...

leetcode435無重疊空間

給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。注意 可以認為區間的終點總是大於它的起點。區間 1,2 和 2,3 的邊界相互 接觸 但沒有相互重疊。示例 1 輸入 1,2 2,3 3,4 1,3 輸出 1 解釋 移除 1,3 後,剩下的區間沒有重疊。示例 2 輸入 1,2 1,...

LeetCode 435 無重疊區間

這道題目是在給定的集合中找到需要去掉的區間最小數量,使得剩餘區間互相不重疊,題目如下 這道題目似乎無從下手,因為找重疊的區域確實是比較麻煩的。我們可以嘗試用貪心演算法來解答這個問題,我們假設有集合 int erva ls 1,2 3 5 2,3 3 6 7,8 6 7 intervals 1,2 3...