从已排序数组中删除重复项-带集合(ES6)

时间:2019-07-23 20:05:50

标签: javascript algorithm set

我正在使用JS中的Leetcode,

第26个问题(从排序数组中删除重复项)

我正在尝试使用Set(ES6),但是在Leetcode页面上(直接提交)它不起作用,但是在控制台中它可以工作。

此外,我还发现旧答案已经列出了Set作为解决方案。 这是old post

从旧帖子中,作者说:

  

ES6提供了Set对象,这使事情变得更加简单

// code from the old post

function uniq(a) {
   return Array.from(new Set(a));
}
or

let uniq = a => [...new Set(a)];

这是我的Set代码:

//this is my code with Set

var removeDuplicates = function(nums) {
    let set = new Set(nums);
    let setArr = [...set];
    return setArr;
};


这是在Leetcode页面上运行代码后显示的内容,输出与预期的不同:

On Leetcode Page

这是网页控制台上的显示
Console

有人可以帮助我了解背后的原因吗?还是我只是误解了这个问题?谢谢!

1 个答案:

答案 0 :(得分:2)

您的函数可以完美地删除数组中的重复项,但它不会执行leetcode任务asks for

  

给出一个已排序的数组num,就地删除重复项,以使每个元素仅出现一次并返回新的长度。

     

不要为另一个数组分配额外的空间,必须通过使用O(1)额外的内存就地修改输入数组来实现。

此外,预期收益是一个单一数字,而不是数组。它指出您需要返回新数组的长度(唯一元素的数量)。