[译]合并间隔

简介: 原文链接: 插入间隔问题:给定一组非重叠和排序的区间,在区间内插入一个新的区间(如果需要的话合并)。例1: 给定区间[1,3], [6,9], 将[2,5]插入并合并为[1,5],[6,9].

原文链接: 插入间隔

问题:
给定一组非重叠和排序的区间,在区间内插入一个新的区间(如果需要的话合并)。

例1: 
    给定区间[1,3], [6,9], 将[2,5]插入并合并为[1,5],[6,9].
例2:
    给定区间[1,2],[3,5],[6,7],[8,10],[12,16],将[4,,9]插入并且合并为[1,2],[3,10],[12,16].
    这是因为插入的新区间[4,9]包括了[3,5],[6,7],[8,10].

思想:
每当有交集,就创建一个新的区间.


img_df91f6ace27dea356a674cecf810ffd3.png
图1

Java 解决方案

/**
 * 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 ArrayList<Interval> insert(ArrayList<Interval> intervals, Interval newInterval) {
 
        ArrayList<Interval> result = new ArrayList<Interval>();
 
        for(Interval interval: intervals){
            if(interval.end < newInterval.start){
                result.add(interval);
            }else if(interval.start > newInterval.end){
                result.add(newInterval);
                newInterval = interval;        
            }else if(interval.end >= newInterval.start || interval.start <= newInterval.end){
                newInterval = new Interval(Math.min(interval.start, newInterval.start), Math.max(newInterval.end, interval.end));
            }
        }
 
        result.add(newInterval); 
 
        return result;
    }
}
目录
相关文章
|
消息中间件 中间件 Java
中间件生产者发送消息
【6月更文挑战第6天】
110 3
|
XML 编解码 API
让你的应用完美适配平板
其实标题有点吹牛逼了,谁也不敢说能完美适配平板,只能说尽力去做,包括显示和使用的各个方面尽力去做,才有可能在更多的平板设备上更加完美的运行起来,因为安卓的设备实在是太多了,之前手机在卷,现在平板也一样在卷。。。
456 0
让你的应用完美适配平板
|
监控 数据可视化 安全
用态势感知2分钟搭建你的安全可视化大屏 | 学习笔记
快速学习 用态势感知2分钟搭建你的安全可视化大屏
717 0
|
C#
WPF如何去除调试的黑框?
WPF如何去除调试的黑框?
709 0
WPF如何去除调试的黑框?
|
移动开发 C# 数据安全/隐私保护
|
.NET 开发框架 网络架构
WCF实现将服务器端的错误信息返回到客户端
转载:http://www.cnblogs.com/zeroone/articles/2299001.html         http://www.it165.net/pro/html/201403/11033.
1365 0
|
9天前
|
人工智能 运维 安全
|
7天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
671 23