5分鐘瞭解二叉樹之LeetCode裡的二叉樹
阿新 • • 發佈:2022-03-26
//20220403
題目描述:給定一個區間的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除區間的最小數量,使剩餘區間互不重疊 。
題目連結:點我
解題思路:
- 貪心,我們可以把區間想象成時間區段,每個時間區段有一個會議,我們需要在這麼多時間區段裡儘可能安排多的會議場數,這時我們就需要從會議結束的時間來找,讓每個會議結束時間儘可能的早,為後面的會議留更多的時間,最終我們得到的就是最多會議的一個安排
- 程式碼如下:
class Solution { public int eraseOverlapIntervals(int[][] intervals) { Arrays.sort(intervals,new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { return o1[1]-o2[1]; } } ); int right = intervals[0][1]; int ans = 1; for(int i = 1;i<intervals.length;++i){ if(intervals[i][0]>=right){ ans++; right = intervals[i][1]; } } return intervals.length-ans; } }
這一題太經典了
希望對大家有所幫助
以上