标签:count 重叠 示例 56 intervals result 区间 Leetcode 刷题
56. 合并区间
题目链接
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-intervals/
题目描述
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。
示例 1:
输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
示例 2:
输入:intervals = [[1,4],[4,5]]
输出:[[1,5]]
解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。
题目分析
示例给的都是按照第一个数字排序过的,但是提交后发现有没有排序的
所以要在逻辑上加一个排序,按照第一个数字排序
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
sort(intervals.begin(), intervals.end());
vector<vector<int>> result;
result.push_back(intervals[0]);
int count = 1;
for(int i = 1; i < intervals.size(); i++){
if(result[count-1][1] >= intervals[i][0]){//重叠
if(result[count-1][1] < intervals[i][1]){
result[count-1][1] = intervals[i][1];
}
}else{
result.push_back(intervals[i]);
count++;
}
}
return result;
}
};
标签:count,重叠,示例,56,intervals,result,区间,Leetcode,刷题 来源: https://blog.csdn.net/qq_42771487/article/details/113722044
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。