美文网首页
435. 无重叠区间

435. 无重叠区间

作者: 来到了没有知识的荒原 | 来源:发表于2020-12-31 09:54 被阅读0次

435. 无重叠区间

有意思的题

1.dp

类似LIS,复杂度为O(n^2)

class Solution {
public:
    int eraseOverlapIntervals(vector<vector<int>>& inter) {
        int n=inter.size();
        if(!n)return 0;

        sort(inter.begin(),inter.end(),[](const vector<int>&a,const vector<int>&b){
            if(a[0]!=b[0]) return a[0]<b[0];
            return a[1]<b[1];
        });

        int dp[n];

        for(int i=0;i<n;i++){
            dp[i]=1;
            for(int j=0;j<i;j++){
                if(inter[j][1]<=inter[i][0]){
                    dp[i]=max(dp[i],dp[j]+1);
                }
            }
        }
        int res=0;
        for(int i=0;i<n;i++)res=max(res,dp[i]);
        return n-res;
    }
};

2.贪心

复杂度为sort部分的O(nlogn)
贪心部分复杂度为O(n)

class Solution {
public:
    int eraseOverlapIntervals(vector<vector<int>>& inter) {
        int n=inter.size();
        if(!n)return 0;
        
        sort(inter.begin(),inter.end(),[](const vector<int>&a,const vector<int>&b){
            if(a[1]!=b[1]) return a[1]<b[1];
            return a[0]<b[0];
        });
        int right=inter[0][1];
        int res=1;
        for(int i=1;i<n;i++){
            if(inter[i][0]>=right){
                right=inter[i][1];
                res++;
            }
        }

        return n-res;
    }
};

相关文章

  • 435. 无重叠区间

    435. 无重叠区间[https://leetcode-cn.com/problems/non-overlappi...

  • [day8] [LeetCode] [title435,5]

    435. 无重叠区间 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的...

  • 一起学算法-435. 无重叠区间

    一、题目435. 无重叠区间 LeetCode地址:https://leetcode-cn.com/problem...

  • leetCode之贪心算法

    第一题 难度:中等 题目:435. 无重叠区间[https://leetcode-cn.com/problems/...

  • 435. 无重叠区间

    盗用labuladong的一个解释,觉得说的挺好的。 什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,...

  • 435. 无重叠区间

    给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。...

  • 435. 无重叠区间(Python)

    题目 难度:★★★☆☆类型:数组方法:动态规划,贪心算法 力扣链接请移步本题传送门[https://leetcod...

  • 435.无重叠的子区间

    题目方法:2种:1贪心2dp,其中贪心的效率更高 贪心思路:把空间按照终点从小到大排序,这是因为结尾越小,留给后续...

  • lintcode 插入空间

    给出一个无重叠的按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如...

  • leetcode 435 无重叠区间

    贪心想了半天,一直想不出完美的要解决条件,只知道要根据起点或终点排序。后来看了答案,原来是用总的区间数量减去没重复...

网友评论

      本文标题:435. 无重叠区间

      本文链接:https://www.haomeiwen.com/subject/ynrloktx.html