C++ 算法精讲之贪心算法

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解

法二:


struct cmp{
	bool operator()(vector<int>& s1, vector<int>& s2){
		return s1[1] < s2[1];
	}
};

class Solution {
public:
    int eraseOverlapIntervals(vector<vector<int>>& intervals) {
        if(intervals.empty())
            return 0;
        sort(intervals.begin(), intervals.end(), cmp());
        int prev = 0;
        int num = 0;
        for(int i = 1; i < intervals.size(); i++)
        {
            //情况1 不冲突
            if(intervals[i][0] >= intervals[prev][1])
            {
                prev = i;
            }
            else
            {
                if(intervals[i][1] < intervals[prev][1])
                {
                    //情况2
                    prev = i;
                }
                num++;
            }
        }

        return num;
    }
};

到此这篇关于C++ 算法精讲之贪心算法的文章就介绍到这了,更多相关C++ 贪心算法内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!

本文标题为:C++ 算法精讲之贪心算法