未验证 提交 5d6c1f5f 编写于 作者: B BruceCat 提交者: GitHub

【56.合并区间】【C++】

【56.合并区间】【C++】
......@@ -92,7 +92,9 @@ def merge(intervals):
</p>
======其他语言代码======
~~~java
### java
```java
class Solution {
/**
* 1. 先对区间集合进行排序(根据开始位置)
......@@ -151,5 +153,40 @@ class Solution {
}
}
~~~
```
### c++
[Kian](https://github.com/KianKw/) 提供第 56 题 C++ 代码
```c++
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
// len 为 intervals 的长度
int len = intervals.size();
if (len < 1)
return {};
// 按区间的 start 升序排列
sort(intervals.begin(), intervals.end());
// 初始化 res 数组
vector<vector<int>> res;
res.push_back(intervals[0]);
for (int i = 1; i < len; i++) {
vector<int> curr = intervals[i];
// res.back() 为 res 中最后一个元素的索引
if (curr[0] <= res.back()[1]) {
// 找到最大的 end
res.back()[1] = max(res.back()[1], curr[1]);
} else {
// 处理下一个待合并区间
res.push_back(curr);
}
}
return res;
}
};
```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册