Skip to content

436. 寻找右区间 ​

  • 题号:436
  • 来源:LeetCode
  • 难度:中等
  • 标签:数组 区间
  • 语言:TypeScript
  • 解法:1 个
  • 作者:lmliheng
  • 最近更新:2026-09-27

TypeScript · O(n^2) 时间 · O(n) 空间 · 更新于 2026-09-27

双重扫描找最小的 start 不小于 end 的区间

typescript
/**
 * @difficulty medium
 * @tags 数组,区间
 * @time O(n^2)
 * @space O(n)
 * @note 双重扫描找最小的 start 不小于 end 的区间
 * @436. 寻找右区间
 */
let intervals = [[1,1],[3,4]]
let res: number[] = []
for (let i = 0; i < intervals.length; i++) {
    let minIndex: number | undefined
    let r = intervals[i][1]
    // 本身也算
    if(intervals[i][0]===intervals[i][1]){
        res.push(i)
        continue
    }

    intervals.map((item, index) => {
        if (index !== i && item[0] >= r) {

            if (minIndex !== undefined) {
                if (item[0] - r < intervals[minIndex][0] - r) {
                    minIndex = index
                }
            } else {
                minIndex = index
            }

        }

    })
    if (minIndex !== undefined) {
        res.push(minIndex)
    } else {
        res.push(-1)
    }
}

console.log(res)

源码:ts/leetcode/436. 寻找右区间.ts


在 GitHub 上查看题目所在目录:lmliheng/algorithm