假设我们得到了一系列的文字。我们需要编写一个函数,该函数就地从数组中删除所有重复项,以使每个元素仅出现一次并返回数组的新长度。
这样做的条件是我们不能为另一个数组分配额外的空间,我们必须通过使用O(1)额外的内存就地修改输入数组来做到这一点。
为此的代码将是-
const arr = [1, 3, 3, 6, 7, 7, 9, 11, 13]; const removeDuplicates = (arr = []) => { let i=0; while(i < arr.length − 1){ let j = i + 1; if(arr[i] === arr[j]){ arr.splice(j,1); }else{ i++; } }; }; removeDuplicates(arr); console.log(arr);
输出结果
控制台中的输出将是-
[ 1, 3, 6, 7, 9, 11, 13 ]