懒人读算法(三)-添加新区间
来源:互联网 发布:mac book air能吃鸡吗 编辑:程序博客网 时间:2024/05/27 14:13
// Example 1:// Given intervals [1,3],[6,9], insert and merge [2,5] in as [1,5],[6,9].// Example 2:// Given [1,2],[3,5],[6,7],[8,10],[12,16], insert and merge [4,9] in as [1,2],[3,10],[12,16].// This is because the new interval [4,9] overlaps with [3,5],[6,7],[8,10].
假设输入的原先区间是有序的
答案:
/** * Definition for an interval. * public class Interval { * int start; * int end; * Interval() { start = 0; end = 0; } * Interval(int s, int e) { start = s; end = e; } * } */public class Solution { public List<Interval> insert(List<Interval> intervals, Interval newInterval) { int i = 0; while(i < intervals.size() && intervals.get(i).end < newInterval.start) i++;//如果列表的第一个区间得最后一个值比新区间第一个值要小,则i++ while(i < intervals.size() && intervals.get(i).start <= newInterval.end) {//如果区间的开始小于新区间的最后 newInterval = new Interval(Math.min(intervals.get(i).start, newInterval.start), Math.max(intervals.get(i).end, newInterval.end));//取当前区间和新区间的最小开始,和最大结束 intervals.remove(i);//原先的区间去除 } intervals.add(i, newInterval);//添加新的区间 return intervals; }}
代码解析:抓住题目的业务逻辑信息,写出代码来并不难.
核心思想:遍历原先列的所有区间,取当前区间和新区间的最小开始,和最大结束
核心代码:
while(i < intervals.size() && intervals.get(i).start <= newInterval.end) {//如果区间的开始小于新区间的最后 newInterval = new Interval(Math.min(intervals.get(i).start, newInterval.start), Math.max(intervals.get(i).end, newInterval.end));//取当前区间和新区间的最小开始,和最大结束 intervals.remove(i);//原先的区间去除 }
阅读全文
1 0
- 懒人读算法(三)-添加新区间
- 懒人读算法(十)-区间总结
- 懒人读算法(七)-旋转矩阵
- 区间操作(线段树、树状数组、懒人标记、RMQ算法)
- 懒人读算法(四)-寻找最大连续值
- 懒人读算法(九)-所有子集(有重复)
- 懒人读算法(十二)-两个和下标
- 懒人读算法(一)-寻找名人
- 懒人读算法(二)-细胞问题
- 懒人读算法(六)-查找剩余范围
- 懒人读算法(八)-所有子集
- 懒人读算法(十一)-找文字
- 【贪心算法(二)】三类区间问题
- 懒人服务器 - 教程三、了解如何应用(服务器端)
- 懒人服务器 - 教程三、了解如何应用(客户端)
- 懒人服务器 - 教程三、了解如何应用(DotNet客户端)
- 懒人服务器 - 教程三、了解如何应用(Swing客户端)
- OpenWrt的luci web管理器添加新菜单(三)
- Linux中表示“时间”的结构体和相关函数
- C#生成唯一值的方法汇总
- 根据电机位置对混合动力汽车的定义
- 表单的勾选删除
- cglib代理学习笔记
- 懒人读算法(三)-添加新区间
- 文件系统读写--page cache机制
- Android项目该如何选择targetSdkVersion
- 基于pf_ring特性的libpcap库安装与配置
- UIButton 扩大点击响应区域
- SSM综合项目实战(TTSC) -- day02 Dubbo注册中心,通用Mapper,分页插件
- 金融科技&大数据产品推荐:Hyperchain--国产自主可控的企业级联盟区块链平台
- 比特币遭俄罗斯央行封禁,阿里成立全球研究机构“达摩院” | 大数据24小时
- java long 类型数据的赋值