leetcode 435.无重叠区间(java 贪心)

桃扇骨 2023-08-17 17:01 253阅读 0赞

d先根据各区间尾节点进行从小到大排序,然后依次判断下一个区间的开始节点是否大于上一个区间的结束节点,若大于,可留住,若是小于,则发生重叠,删去。这样就能保证尾节点小的留住,为后面的区间腾出更多的地方,从而使保留的区间尽可能多。

**有一处不懂,

  1. Arrays.sort(intervals,Comparator.comparingInt(o -> o[1]));
  2. class Solution {
  3. public int eraseOverlapIntervals(int[][] intervals) {
  4. if(intervals.length==0)
  5. return 0;
  6. Arrays.sort(intervals,Comparator.comparingInt(o -> o[1])); //???
  7. int ans=1;
  8. int end=intervals[0][1];
  9. for(int i=1;i<intervals.length;i++){
  10. if(intervals[i][0]<end){
  11. continue;
  12. }
  13. end=intervals[i][1];
  14. ans++;
  15. }
  16. return intervals.length-ans;
  17. }
  18. }

转载于:https://www.cnblogs.com/y1040511302/p/11483073.html

发表评论

表情:
评论列表 (有 0 条评论,253人围观)

还没有评论,来说两句吧...

相关阅读

    相关 leetcode 435.重叠区间java 贪心

    d先根据各区间尾节点进行从小到大排序,然后依次判断下一个区间的开始节点是否大于上一个区间的结束节点,若大于,可留住,若是小于,则发生重叠,删去。这样就能保证尾节点小的留住,为后

    相关 leetcode435重叠空间

    给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。 区间 \[1,2\] 和 \[2,3\] 的边界相互