当前位置:网站首页>剑指offer专项突击版第25天
剑指offer专项突击版第25天
2022-08-10 01:54:00 【_hys】
排序+贪心
- 将区间按左端点升序排序,那么就有一个性质:下个区间的左端点<=当前右端点<=当前左端点。
- 容易想到如果当前右端点小于下个区间的左端点时就不可能合并了,如果是大于等于的话在当前右端点和下个右端点取一个最大即可。
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 内数据的范围 [ 0 , 1000 ] [0,1000] [0,1000] 完全可以直接计数排序, O ( N ) O(N) O(N) 的时间复杂度。
注意:在完成把前面部分插入后,while条件里面会出现-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;
}
};
边栏推荐
猜你喜欢
自动化测试中,测试数据与脚本分离以及参数化方法
Data Governance (5): Metadata Management
首次在我们的centos上安装MySQL
Unity editor extension interface uses List
Experimental support for decorators may change in future releases.Set the "experimentalDecorators" option in "tsconfig" or "jsconfig" to remove this warning
中级xss绕过【xss Game】
首次在我们的centos登录我们的Mysql
Screen 拆分屏幕
STM32F103驱动HCSR04超声波测距显示
mysql -sql编程
随机推荐
QT中,QTableWidget 使用示例详细说明
Janus actual production case
openpose脚部标注问题梳理
Unity碰撞和触发
OptiFDTD应用:纳米盘型谐振腔等离子体波导滤波器
Solve the problem of sed replacement text containing special characters such as "/" and "#"
【干货】集成学习原理总结
SQLserver加个判断
阿里云OSS文件上传
Research on Ethernet PHY Chip LAN8720A Chip
2022强网杯 Quals Reverse 部分writeup
微透镜阵列后光传播的研究
web crawler error
The flask to add and delete
华为HCIE云计算之FC添加ipsan数据存储
C# 正则表达式分组查询
2022年8月8日-2022年8月15日,ue4视频教程+插件源码()
【二叉树-中等】1379. 找出克隆二叉树中的相同节点
type-C 边充电边听歌(OTG) PD芯片方案,LDR6028 PD充电加OTG方案
基于FTP协议实现文件上传与下载