1. 程式人生 > 其它 >LeetCode刷題之貪心演算法—重疊區間

LeetCode刷題之貪心演算法—重疊區間

Leetcode之 重疊區間 (最少數量箭引爆氣球)

1.重疊區間:一組二維陣列,它的0列是開始,1列是結束。最少要刪除多少個子陣列,各子區間才不重疊

 方法一:直接記錄交叉區間個數
 static bool cmp(vector<int>& a, vector<int>& b)
    {
        return a[1]<b[1];//右列排序
    }
    int eraseOverlapIntervals(vector<vector<int>>& intervals) {
        if(intervals.size()==0) return 0;
        sort(intervals.begin(),intervals.end(),cmp);
        int res=0;//交叉數
        for(int i=1; i<intervals.size();i++)
        {
            if(intervals[i][0]<intervals[i-1][1])
            {
                res++;
                intervals[i][1]=intervals[i-1][1];
            }
        }
        return res++;
 方法二:先找出交叉區間
 static bool cmp(vector<int>& a, vector<int>& b)
    {
        return a[1]<b[1];
    }
    int eraseOverlapIntervals(vector<vector<int>>& intervals) {
        if(intervals.size()==0) return 0;
        sort(intervals.begin(),intervals.end(),cmp);
        int res=1;//未交叉數
  int start intervals[0][1];
  for(vector<int>interval:intervals)
  {
  if(start<=interval[0])
  {
  res++;
  start=piont[1];
  }
  }
  return intervals.size() - res;
         

2.引爆氣球 :尋找交叉區間,不過邊界點重疊也算!!

 
 static bool cmp(vector<int>& a, vector<int>& b)
    {
        return a[1]<b[1];
    }
    int eraseOverlapIntervals(vector<vector<int>>& intervals) {
        if(intervals.size()==0) return 0;
        sort(intervals.begin(),intervals.end(),cmp);
        int res=1;//未交叉數
  int start intervals[0][1];
  for(vector<int>interval:intervals)
  {
  if(start<interval[0]) //邊界重合也算交叉!!
  {
  res++;
  start=interval[1];
  }
  }
  return res; //注意返回值
         

 

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back