Leetcode:从排序数组中删除重复项(Javascript)
为什么我的解决方案在控制台上工作,而在leetcode上不工作Leetcode:从排序数组中删除重复项(Javascript),javascript,algorithm,Javascript,Algorithm,为什么我的解决方案在控制台上工作,而在leetcode上不工作 var removeDuplicates = function(nums) { let res = []; for(let num of nums) { if(res.includes(num) === false) { res.push(num); } } return res.length; }; 控制台: Leetcod
var removeDuplicates = function(nums) {
let res = [];
for(let num of nums) {
if(res.includes(num) === false) {
res.push(num);
}
}
return res.length;
};
控制台:
Leetcode:
let arr = [1, 1, 2]
removeDuplicates(arr) // 3
您可以尝试将
includes
更改为indexOf
,可能是includes
在您的环境中不起作用。另外,您应该返回res
,而不是返回length
如果你想尝试另一种方法,你可以看看下面的集合
var removeDuplicates=函数(nums){
返回[…新集合(nums)]
};
console.log(移除的副本([1,1,2]))
console.log(移除的副本([1,1,2,3])
您可以尝试将包含更改为索引,如果包含在您的环境中不起作用。另外,您应该返回res
,而不是返回length
如果你想尝试另一种方法,你可以看看下面的集合
var removeDuplicates=函数(nums){
返回[…新集合(nums)]
};
console.log(移除的副本([1,1,2]))
log(删除的副本([1,1,2,3])
您没有正确使用sorty。从算法上讲,将项目与前一个项目进行比较更有效,因此复杂性是O(N)
也许JS有一些像Pythongroupby
这样的高阶函数来缩短代码,但从算法的角度来看,所描述的方法肯定是最好的
var removeDuplicates=函数(nums){
设res=[];
让最后一个=楠
对于(i=0;i>2
您没有正确使用排序。在算法上,将项目与前一个项目进行比较更有效,因此复杂性是O(N)
也许JS有一些像Pythongroupby
这样的高阶函数来缩短代码,但从算法的角度来看,所描述的方法肯定是最好的
var removeDuplicates=函数(nums){
设res=[];
让最后一个=楠
对于(i=0;i>2
这里是另一个解决方案,您可以尝试
var removeDuplicates = function(nums) {
let p1 = 0,lastVal =nums[0] -1;
for (let i = 0; i < nums.length; i++) {
if (nums[i] != lastVal) {
nums[p1] = nums[i];
lastVal = nums[i]
p1 +=1;
}
}
nums.length = p1;
console.log(nums);
};
let arr = [1, 1, 2]
removeDuplicates(arr);
var removeDuplicates=函数(nums){
设p1=0,lastVal=nums[0]-1;
for(设i=0;i
这里是另一个解决方案,您可以尝试
var removeDuplicates = function(nums) {
let p1 = 0,lastVal =nums[0] -1;
for (let i = 0; i < nums.length; i++) {
if (nums[i] != lastVal) {
nums[p1] = nums[i];
lastVal = nums[i]
p1 +=1;
}
}
nums.length = p1;
console.log(nums);
};
let arr = [1, 1, 2]
removeDuplicates(arr);
var removeDuplicates=函数(nums){
设p1=0,lastVal=nums[0]-1;
for(设i=0;i
您是否尝试过使用If(res.indexOf(num)<0)?而不是If(res.includes(num)==false)您是否尝试过使用If(res.indexOf(num)<0)?而不是If(res.includes(num)==false)是@Yoskuintero刚刚意识到这一点。:)集合可以直接编辑输入数组。谢谢@YosvelQuintero。很好帮助..删除我的答案,因为你的答案是第一个你真是太好了@YosvelQuintero。这就是为什么我喜欢这样,人们非常愿意提拔其他学习者。谢谢:)是的@YosvelQuintero刚刚意识到::)集合可以直接编辑输入数组。谢谢@YosvelQuintero。很好的帮助..删除我的答案,因为你的答案是第一个,你真是太好了@YosvelQuintero。这就是为什么我如此喜欢,人们非常愿意提拔其他学习者。谢谢:)