给定整数数组 nums 和整数 k,需判断是否存在不同索引 i、j,使得 nums [i] == nums [j] 且 abs (i-j) ≤ k。这一问题核心是 “元素去重 + 距离校验”,暴力枚举复杂度 O (n²),效率过低。
最优解法用哈希表(字典)记录元素最新索引:遍历数组时,若当前元素已在哈希表中,且当前索引与记录索引差值≤k,直接返回 true;否则更新元素索引为当前值。若遍历结束无满足条件的元素,返回 false。
该方法时间复杂度 O (n)、空间复杂度 O (n),通过空间换时间实现高效查找,适用于大数据量场景,是数组处理中 “哈希表优化查找” 的典型应用。
编辑分享
用 Python 实现上述算法
分享一些解决数组去重问题的代码案例
动态规划和哈希表优化在其他算法问题中有哪些应用?