Skip to content

220. 存在重复元素III ​

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

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

暴力枚举 indexDiff 窗口内元素对

typescript
/**
 * @difficulty medium
 * @tags 数组,滑动窗口
 * @time O(n*k)
 * @space O(k)
 * @note 暴力枚举 indexDiff 窗口内元素对
 * @220. 存在重复元素III
 */
let nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let indexDiff = 10
let valueDiff = 5


// i在前j在后 和 i在后j在前是一样的结果
for (let i = 0; i < nums.length; i++) {

    //
    if (indexDiff + i >= nums.length) {
        // console.log("满足条件")
        // 找到indexDiff范围内的新数组
        let newArr = nums.slice(i, indexDiff + i + 1).sort((a, b) => a - b)
        // console.log("新数组:", newArr)
        // 剪枝,一旦新数组到尾部了,就不需要继续往后找了
        if (Math.abs(newArr[0] - newArr[1]) > valueDiff) {
            console.log("未找到满足valuediff的", false)

        } else {
            console.log("到达尾部:", true)
        }
    }


    for (let j = i + 1; j <= indexDiff + i; j++) {
        if (Math.abs(nums[i] - nums[j]) <= valueDiff) {
            console.log("此时i=", i, "j=", j, true)
        }
    }
}
console.log(false)

源码:ts/leetcode/220. 存在重复元素III.ts


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