**LeetCode 56. Merge Intervals
2016-01-23 01:26
344 查看
https://leetcode.com/problems/merge-intervals/
虽然是Hard 但是并不难,但是WA了
问题在于 自己没有好好动手模拟,选择的分隔的标准有问题
方法一:
线段树涂色问题
方法二:
先把区间按照左端点排序 左端点一样就按照右端点排序,然后st en分别标记当前的区间,如果发现interval[i+1]>st 就存入ret,更新St和en
bool cmp(const Interval a, const Interval b) {
if(a.start != b.start) {
return a.start < b.start;
} else {
return a.end < b.end;
}
}
class Solution {
public:
vector<Interval> merge(vector<Interval>& intervals) {
vector <Interval> ret;
int flag = 0;
if(intervals.size() == 0)return ret;
sort(intervals.begin(), intervals.end(), cmp);
int st=intervals[0].start, en=intervals[0].end;
for(int i=0;i<intervals.size()-1;i++) {
if(intervals[i+1].start>en) {
ret.push_back( Interval(st, en) );
st = intervals[i+1].start;
en = intervals[i+1].end;
} else {
st = min(st, intervals[i+1].start);
en = max(en, intervals[i+1].end);
}
}
ret.push_back( Interval(st, en) );
return ret;
}
};
虽然是Hard 但是并不难,但是WA了
问题在于 自己没有好好动手模拟,选择的分隔的标准有问题
方法一:
线段树涂色问题
方法二:
先把区间按照左端点排序 左端点一样就按照右端点排序,然后st en分别标记当前的区间,如果发现interval[i+1]>st 就存入ret,更新St和en
bool cmp(const Interval a, const Interval b) {
if(a.start != b.start) {
return a.start < b.start;
} else {
return a.end < b.end;
}
}
class Solution {
public:
vector<Interval> merge(vector<Interval>& intervals) {
vector <Interval> ret;
int flag = 0;
if(intervals.size() == 0)return ret;
sort(intervals.begin(), intervals.end(), cmp);
int st=intervals[0].start, en=intervals[0].end;
for(int i=0;i<intervals.size()-1;i++) {
if(intervals[i+1].start>en) {
ret.push_back( Interval(st, en) );
st = intervals[i+1].start;
en = intervals[i+1].end;
} else {
st = min(st, intervals[i+1].start);
en = max(en, intervals[i+1].end);
}
}
ret.push_back( Interval(st, en) );
return ret;
}
};
相关文章推荐
- Javascript 相关文章 —— 性能
- 小娜学法(12):什么是案件信息公开?
- mysql5.5.28.tar.gz编译安装操作笔记
- Android LayoutInflater深度解析
- 模板(Jinja2+bootstrasp)
- android auto-Providing Audio Playback for Auto
- uwsgi.xml
- 《软件开发者路线图——从学徒到高手》—— 读后总结
- 2 main、单例模式、继承、instanceof
- Windows 10 UWP页面跳转and传值
- 3、Winsock编程详解
- LaTeX Error: Unknown float option `e'.
- MySQL推出Applier,可实时复制数据到Hadoop
- 【51单片机】(手把手教你)串口通信-基础篇
- Mac pip 无法安装 lxml
- MySQL推出Applier,可实时复制数据到Hadoop
- MySQL推出Applier,可实时复制数据到Hadoop
- C# 文件的读写的几种方式
- Android ViewPager RadioButton Fragment FragmentPagerAdapter Tab页滑动
- MySql安装问题,无法启用3306导致连接失败问题集和解决方法