当前位置:网站首页>剑指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;
}
};
边栏推荐
- 《GB39707-2020》PDF下载
- 桌面云组件介绍与安装
- Unity vertex animation
- Shell编程--awk
- Solve the problem of sed replacement text containing special characters such as "/" and "#"
- 16. 最接近的三数之和
- 2022杭电多校联赛第七场 题解
- Database management tool: dynamic read-write separation
- FusionConpute虚拟机的发放与管理
- RESOURCE_EXHAUSTED: etcdserver: mvcc: database space exceeded
猜你喜欢
随机推荐
【QT】QT项目:自制Wireshark
[Syntax sugar] About the mapping of category strings to category numeric ids
Pagoda server PHP+mysql web page URL jump problem
SQLserver加个判断
web开发概述
Process management and task management
自动化测试中,测试数据与脚本分离以及参数化方法
Teach you how to write performance test cases
首次在我们的centos上安装MySQL
用于X射线光学器件的哈特曼波前传感器
Unity3D创建道路插件EasyRoads的使用
Fusion Compute网络虚拟化
【论文笔记】基于深度学习的机器人抓取虚拟仿真实验教学系统
Experimental support for decorators may change in future releases.Set the "experimentalDecorators" option in "tsconfig" or "jsconfig" to remove this warning
HCIP——综合交换实验
浏览器中location详解
SQL注入的order by ,limit与宽字节注入
web crawler error
FusionConpute虚拟机的发放与管理
手把手教你搭建ELK-新手必看-第一章:什么是ELK?