首页 > 试题广场 >

区间列表交集

[编程题]区间列表交集
  • 热度指数:352 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定两个由闭区间组成的列表 first 和 second ,其中 表示区间,保证这两个列表内部是不存在交集的,并且是排序之后的。

请找出两个区间列表的交集。

数据范围:区间列表的长度满足 , 区间列表中的值满足
示例1

输入

[[0,2],[5,10],[11,13]],[[1,3],[5,11]]

输出

[[1,2],[5,10],[11,11]]
package main
//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param first int整型二维数组 
 * @param second int整型二维数组 
 * @return int整型二维数组
*/
func intersectionofintervals( first [][]int ,  second [][]int ) [][]int {
    ans:=[][]int{}
    for len(first)>0&&len(second)>0{
        if first[0][1]<second[0][0]{
            first=first[1:]
        }else if first[0][0]>second[0][1]{
            second=second[1:]
        }else{
            ans=append(ans,[]int{max(first[0][0],second[0][0]),min(first[0][1],second[0][1])})
            if first[0][1]<second[0][1]{
                first=first[1:]
            }else if first[0][1]>second[0][1]{
                second=second[1:]
            }else{
                first=first[1:]
                second=second[1:]
            }
        }
    }
    return ans
}

func min(a,b int)int{
    if a<b{
        return a
    }
    return b
}

func max(a,b int)int{
    if a>b{
        return a
    }
    return b
}

发表于 2023-03-15 18:48:21 回复(0)

问题信息

难度:
1条回答 999浏览

热门推荐

通过挑战的用户

查看代码