1. 题目
2. 思路
- 遍历nums,找到与key相同的元素的索引idx,然后以它为原点,将[idx - k, idx + k]的索引都加入到set
- 最终将set进行去重处理即可
- 注意对边界的处理:有可能idx-k会小于0,idx+k会大于nums.length - 1
3. 代码
let nums = [2,2,2,2,2], key = 2, k = 2
function findKDistantIndices(nums, key, k) {
let set = new Set()
const n = nums.length
nums.forEach((item, idx) => {
if (item === key) {
// console.log(Math.max(0, idx - k), idx - k);
// console.log(Math.min(idx + k, n - 1), idx + k);
for (let i = Math.max(0, idx - k); i <= Math.min(idx + k, n - 1); i++) {
set.add(i)
}
}
})
return [...set]
}
console.log(findKDistantIndices(nums, key, k));
版权声明:本文为weixin_44109827原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
