我正在使用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页面上运行代码后显示的内容,输出与预期的不同:
这是网页控制台上的显示
有人可以帮助我了解背后的原因吗?还是我只是误解了这个问题?谢谢!
答案 0 :(得分:2)
您的函数可以完美地删除数组中的重复项,但它不会执行leetcode任务asks for:
给出一个已排序的数组num,就地删除重复项,以使每个元素仅出现一次并返回新的长度。
不要为另一个数组分配额外的空间,必须通过使用O(1)额外的内存就地修改输入数组来实现。
此外,预期收益是一个单一数字,而不是数组。它指出您需要返回新数组的长度(唯一元素的数量)。