网站优化案例分析,wordpress非常卡,平谷网站建设服务,邢台做移动网站哪儿好目录 实现有序数组原地去重方法有哪些#xff1f;方法一#xff1a;使用 Set 数据结构代码实现#xff1a;思路说明#xff1a; 方法二#xff1a;使用双指针遍历代码实现#xff1a;思路说明#xff1a; 实现有序数组原地去重方法有哪些#xff1f;
在 JavaScript 中… 目录 实现有序数组原地去重方法有哪些方法一使用 Set 数据结构代码实现思路说明 方法二使用双指针遍历代码实现思路说明 实现有序数组原地去重方法有哪些
在 JavaScript 中实现有序数组的原地去重有多种方法下面是两种常见的方式。
方法一使用 Set 数据结构 代码实现
!DOCTYPE html
html langenheadmeta charsetUTF-8 /meta nameviewport contentwidthdevice-width, initial-scale1.0 /title有序数组原地去重-Set方法/title/headbodyscriptfunction removeDuplicates(arr) {const uniqueArray [...new Set(arr)]return uniqueArray}// 示例const originalArray [1, 2, 2, 3, 4, 4, 5]const uniqueArray removeDuplicates(originalArray)document.write(p原始数组: originalArray.join(, ) /p)document.write(p去重数组: uniqueArray.join(, ) /p)/script/body
/html思路说明
创建一个 Set 数据结构Set 可以自动去重。将原始数组中的元素依次添加到 Set 中由于 Set 不允许重复元素重复元素将被自动忽略。最后将 Set 转回数组的形式即得到了去重后的有序数组。
方法二使用双指针遍历
代码实现
!DOCTYPE html
html langenheadmeta charsetUTF-8 /meta nameviewport contentwidthdevice-width, initial-scale1.0 /title有序数组原地去重-双指针遍历/title/headbodyscriptfunction removeDuplicates(arr) {let slowPointer 0for (let fastPointer 1; fastPointer arr.length; fastPointer) {if (arr[fastPointer] ! arr[slowPointer]) {slowPointerarr[slowPointer] arr[fastPointer]}}return arr.slice(0, slowPointer 1)}// 示例const originalArray [1, 2, 2, 3, 4, 4, 5]const uniqueArray removeDuplicates(originalArray)document.write(p原始数组: originalArray.join(, ) /p)document.write(p去重数组: uniqueArray.join(, ) /p)/script/body
/html
思路说明
使用双指针一个慢指针 slowPointer 和一个快指针 fastPointer。遍历数组当 fastPointer 指向的元素与 slowPointer 指向的元素不同时将 fastPointer 指向的元素赋值给 slowPointer 后面的位置。最后返回数组的前 slowPointer 1 个元素即为去重后的有序数组。
这两种方法都能在原地实现有序数组的去重你可以选择其中一种方法进行使用。 持续学习总结记录中回顾一下上面的内容 实现有序数组原地去重方法有哪些Set、双指针遍历