当前位置:网站首页>The 25th day of the special assault version of the sword offer
The 25th day of the special assault version of the sword offer
2022-08-10 03:20:00 【_hys】
排序+贪心
- Sort the interval by the left endpoint in ascending order,Then there is a property:The left endpoint of the next interval<=当前右端点<=当前左端点.
- It is easy to think that it is impossible to merge if the current right endpoint is smaller than the left endpoint of the next interval,If it is greater than or equal to, then take the maximum of the current right endpoint and the next right endpoint.
class Solution {
public:
bool cmp(vector<int> &a, vector<int> &b) {
if(a[0] != b[0]) return a[0] < b[0];
return a[1] < b[1];
}
vector<vector<int>> merge(vector<vector<int>>& intervals) {
sort(intervals.begin(), intervals.end());
int st = intervals[0][0], ed = intervals[0][1];
vector<vector<int>> res;
for(int i = 1; i < intervals.size(); i++) {
const auto seg = intervals[i];
if(ed < seg[0]) {
res.emplace_back(vector<int>{
st,ed});
st = seg[0];
ed = seg[1];
} else {
ed = max(ed,seg[1]);
}
}
if(res.empty() || ed != res.back()[1]) res.emplace_back(vector<int>{
st,ed});
return res;
}
};
计数排序
发现 a r r 1 arr1 arr1 range of data [ 0 , 1000 ] [0,1000] [0,1000] It can be directly counted and sorted, O ( N ) O(N) O(N) 的时间复杂度.
注意:After you finish inserting the front part,whileconditions will appear-1,需要加上>0条件.
class Solution {
public:
vector<int> relativeSortArray(vector<int>& arr1, vector<int>& arr2) {
int cnts[1010] = {
0};
vector<int> res;
for(auto num: arr1) cnts[num]++;
for(auto num: arr2)
while(cnts[num]--) res.emplace_back(num);
for(int i = 0; i <= 1000; i++)
while(cnts[i]-- > 0)
res.emplace_back(i);
return res;
}
};
边栏推荐
猜你喜欢
随机推荐
Button countdown reminder
idea 删除文件空行
在蓝图中给组件动态加子Actor组件
what is a microcontroller or mcu
SQLserver adds a judgment
Janus实际生产案例
2022.8.9考试立方和--1100题解
【二叉树-中等】508. 出现次数最多的子树元素和
Database management tool: dynamic read-write separation
【SSRF漏洞】实战演示 超详细讲解
[Swoole Series 3.5] Process Pool and Process Manager
实操|风控模型中常用的这三种预测方法与多分类场景的实现
【二叉树-中等】687. 最长同值路径
SQLserver加个判断
C# 单例模式
LeetCode 每日一题——1413. 逐步求和得到正数的最小值
FusionCompute产品介绍
2022年立下的flag完成情况
基于C51的中断控制
Open3D 泊松盘网格采样