1 Star 0 Fork 0

MetaverseMobile/leetcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
56_合并区间.cpp 1.57 KB
一键复制 编辑 原始数据 按行查看 历史
TieNan2019 提交于 2021-02-22 21:41 . Create 56_合并区间.cpp
class Solution {
public:
/* 路径点 */
typedef struct {
/* 表示当前的数是否出现过 */
bool occupied;
/* 表示当前数是否和下一个数字相连 */
bool concatnate;
} rec_t;
#define LEN_P 3001
vector<vector<int>> merge(vector<vector<int>>& intervals) {
/* 模拟一个路径 */
rec_t path[LEN_P];
memset(path, 0, LEN_P * sizeof(rec_t));
for (const auto &v : intervals) {
/* 前面的每个数都是连续的 */
for (int i = v.front(); i < v.back(); i++) {
path[i].occupied = true;
path[i].concatnate = true;
}
/* 最后一个虽然有, 但是不与下一个数相连 */
path[v.back()].occupied = true;
}
vector<vector<int>> ans;
int start = -1;
for (int i = 0; i < LEN_P; i++) {
/* 发现头 */
if (path[i].occupied && start == -1) {
start = i;
}
/* 有数字, 但是已经断开 */
if (path[i].occupied && !path[i].concatnate) {
ans.push_back({start, i});
start = -1;
}
}
return ans;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/MetaverseMobile/leetcode.git
[email protected]:MetaverseMobile/leetcode.git
MetaverseMobile
leetcode
leetcode
main

搜索帮助