老师双指针思想对数组去重咋不行呀?
来源:2-20 找出一个数组中和为 n 的两个数-双指针的代码演示
慕容6596715
2022-03-06
// 双指针办法对数组去重 避免复杂度O(n^2)不可用
function unique2(arr) {
let res = []
const length = arr.length;
if (length === 0) return res
let i = 0 // 头
let j = length - 1 // 尾
while (i < j) {
const n1 = arr[i]
const n2 = arr[j]
if (n1 !== n2) {
i++
j--
} else {
res.push(n1)
break
}
}
return res
}
console.log(unique2([1, 8, 2, 3, 6, 3, 5, 2, 4, 4]));
写回答
1回答
-
双越
2022-03-07
数组去重,我下次升级时再补充吧,详细讲一下。
最简单的方式,可以把数组转换为 set ,然后再转换为数组,就去重了。
032022-05-05
相似问题