2022-2-16 Leetcode986.区间列表的交集
一共分成三种情况来考虑
第一种情况
- first 和 second 所在的区间有交集,但是不会超过 second 所在的区间,最终截取的区间段是两者的交集。
- 取完交集之后,是 first 向后移动一个,
- 如果second 和 first 原来的尾部一致,那么都同时向后移动
第二种情况
second 直接囊括 first ,将 first 加入 答案后,只需 first 向后移动即可
第三种情况
first 和 second 没有交集,不能加入答案,只能向后移动
最终的代码还是写复杂了,直接分成有交集和没有交集的就好
最终的版本
vector<vector<int>> intervalIntersection(vector<vector<int>>& firstList, vector<vector<int>>& secondList) {vector<vector<int>> ret;if(firstList.empty()|| secondList.empty()){return ret;}int size1 = firstList.size();int size2 = secondList.size();int i = 0,j = 0;while(i < size1 && j < size2){//不满足的条件是 firstList[i][0] > secondList[j][0];//firstList[i][1] < firstList[j][0]//firstList[i][1] > secondList[j][1]if(firstList[i][0] <= secondList[j][0] && firstList[i][1] >= secondList[j][0] && firstList[i][1] <= secondList[j][1]){ret.push_back({secondList[j][0],firstList[i][1]});if(firstList[i][1] == secondList[j][1]){i++;j++;}else {i++;}}//不满足的条件是 secondList[j][0] > firstList[i][0]//secondList[j][1] < firstList[i][0]//secondList[j][1] > firstList[i][1]else if(secondList[j][0] <= firstList[i][0] && secondList[j][1] >= firstList[i][0]&& secondList[j][1] <= firstList[i][1]){ret.push_back({firstList[i][0],secondList[j][1]});if(firstList[i][1] == secondList[j][1]){i++;j++;}else {j++;}}else if(secondList[j][0] < firstList[i][0] && firstList[i][1] < secondList[j][1]){ret.push_back(firstList[i]);i++;}else if(firstList[i][0] < secondList[j][0] && secondList[j][1] < firstList[i][1]){ret.push_back(secondList[j]);j++;}else {// i++;// j++;if(firstList[i][0] < secondList[j][0] && firstList[i][1] < secondList[j][1]){i++;}else if(secondList[j][0] < firstList[i][0] && secondList[j][1] < firstList[i][1]){j++;}// else if(firstList[i][1] > secondList[j][1]){// j++;// }else if(firstList[i][1] < secondList[j][1]){// i++;// }}}return ret;}
2022-2-16 Leetcode986.区间列表的交集相关推荐
- 【LeetCode 986】 区间列表的交集(区间交集)
给定两个由一些 闭区间 组成的列表,firstList 和 secondList ,其中 firstList[i] = [starti, endi] 而 secondList[j] = [startj ...
- LeetCode 986. 区间列表的交集
文章目录 1. 题目信息 2. 解题 1. 题目信息 给定两个由一些闭区间组成的列表,每个区间列表都是成对不相交的,并且已经排序. 返回这两个区间列表的交集. (形式上,闭区间 [a, b](其中 a ...
- Leetcode刷题986. 区间列表的交集
给定两个由一些 闭区间 组成的列表,每个区间列表都是成对不相交的,并且已经排序. 返回这两个区间列表的交集. (形式上,闭区间 [a, b](其中 a <= b)表示实数 x 的集合,而 a & ...
- leetcode 986. Interval List Intersections | 986. 区间列表的交集(双指针)
题目 https://leetcode.com/problems/interval-list-intersections/ 题解 本题用双指针.(想了下,也可以用线段树,和天际线那道题类似) clas ...
- on java 8 学习笔记 2022.2.16
2022.2.16 问题 其实我感觉引用计数的方法不只书中提到的这种问题吧,难道不会有对象被误删的情况吗? 答:不会,因为这种方法就是参考了只要有引用,它就是有效对象的路子,而只要引用大于0,那它就是 ...
- 求两个集合的差集代码_求求你了,不要再写循环求两个列表的交集,并集和差集了 | pythonic 小技巧...
在 Python 中,求两个列表的交集,并集和差集是经常会遇到的需求,而且也比较简单. 最容易想到的就是写循环,对两个列表分别进行循环,然后判断元素是否在另一个列表中,求得最终结果. 但这种方法比较 ...
- 数据结构:求两个有序列表的交集,并集
1.求两个有序列表的交集 LNode* Intersection(LNode* La,LNode* Lb) {if (La==NULL||Lb==NULL){return NULL;}LNode *p ...
- 【SRE笔记 2022.8.16 Linux命令基础01】
[SRE笔记 2022.8.16] Xsell使用技巧补充 centos 7 root密码重置 方法一 方法二 numtui配置网络 Bash bash命令行图解 命令行提示符 控制变量 PS环境变量 ...
- 【不忘初心】 Windows11_22H2_22621.105_X64_可更新[纯净精简版][2.28G](2022.6.16)
此版可正常更新补丁,关闭按流量计费,WIN11全新的UI界面出炉!可以说这一次Windows 11全新升级,无论是从Logo上还是UI界面设计,都有很大的变化,母版来自UUP WIN11_22621. ...
最新文章
- Linux命令:文本处理工具awk详解
- Jenkins持续集成环境之插件管理和角色管理
- 如何深拷贝一个对象数组?
- SSH免密直接登录方法
- STM32产品名称命名规则
- 太惨了!卖一个月不如小米卖一天,手机一哥仍不甘心
- 华为年度旗舰Mate 30 Pro真机现身,既惊喜又失望...
- tp886n路由器是第几代?
- 为什么说《让子弹飞》是古今中外的神片
- C# BackgroundWorker组件学习
- tcpserver检测断开qt_QTcpServer或QTcpClient(在服务器端)知道,已连接的客户端现已断开连接...
- oracle设置保存时间为12或是24小时格式
- c语言int temp什么意思,C中的temp是什么意思?
- PS进阶抠图详解(可以处理头发)
- 王者荣耀高清壁纸脚本Python文件
- 实现直播视频app源码的底部导航栏
- java实现svm svm的java实现
- HTML中spry菜单栏,DreamweaverCS3中用“spry菜单栏”制作纵向导航菜单.docx
- Python对列表去重的多种方法(四种方法)
- C语言————二进制转十进制