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