题目:给定一些无序区间,判断某个给定的特定区间是否在这些无序的区间内。 这个题目比较简单,首先将给定的区间排序,在对重合的区间进行排序,使得区间变成递增且不重叠的若干个区间,对于给定的区间在已经处理好的区间内进行二分查找,完成区间覆盖的判断。 代码如下:
#include <stdio.h> #include <vector> #include <algorithm> using namespace std; class Interval { public: Interval(int start, int end) : start_(start), end_(end) {} Interval() :start_(0), end_(0) {} static bool OrderByStart(const Interval& left, const Interval& right) { return left.start_ < right.start_; } friend bool operator<(const Interval& left, const Interval& right) { return left.start_ < right.start_; } int start_; int end_; }; void CombinInterval(std::vector<Interval>& orginal, std::vector<Interval>* co
区间重合判断(编程之美2.19)
最新推荐文章于 2019-07-15 10:47:48 发布