标签:sort p2 vector end ++ 56 合并 intervals LeetCode
题意:给出一个区间的集合,请合并所有重叠的区间。 https://leetcode-cn.com/problems/merge-intervals/
解题思路一:使用排序,开始时间从小至大排序。
1 vector<vector<int>> merge(vector<vector<int>>& intervals) { 2 sort(intervals.begin(),intervals.end()); // sort是什么机制?为什么能够对vector<vector<int>>直接sort,好强; 3 if(intervals.size()<=1){ 4 return intervals; 5 } 6 auto p1=intervals.begin(); 7 auto p2=intervals.begin()+1; 8 while(p2!=intervals.end()){ 9 // 考虑p2[0]和p1[1]的关系 10 if((*p2)[0]<=(*p1)[1]){ 11 int tmp=max((*p2)[1],(*p1)[1]); 12 (*p1)[1]=tmp; 13 } 14 else{ 15 p1++; 16 p1->swap(*p2); 17 } 18 p2++; 19 } 20 intervals.erase(++p1,intervals.end()); 21 return intervals; 22 }
标签:sort,p2,vector,end,++,56,合并,intervals,LeetCode 来源: https://www.cnblogs.com/yy-1046741080/p/12234080.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。