Удаление дупликатов из массива
Если кратко, то решаю задачу на литкоде, но мой ответ не принимается, несмотря на кажущуюся его истинность.
Вот условие, если кому-то интересно, хотя на самом деле просто нужно удалить повторяющиеся элементы массива.
Вот моё решение:
var removeDuplicates = function(nums) {
for (let i = 0; i < nums.length; i++){
let a = nums[i];
for (let j = 0; j < nums.length; j++){
if(a == nums[j] && i != j){
nums = nums.pop(nums[j])
j--
}
}
}
return nums
};
И вот результат:
Что я делаю не так?
Ответы (2 шт):
Автор решения: MBo
→ Ссылка
Вот пример решения на Python (Accepted). Обратите внимание, что возвращается количество уникальных элементов, и система сверяет обновленное содержимое аргумента nums.
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
k = 0
for i in range(1, len(nums)):
if nums[i] == nums[i-1]:
k += 1
elif k:
nums[i-k] = nums[i]
return(len(nums) - k)
Автор решения: SwaD
→ Ссылка
Вариант, как убрать дубликаты в массиве:
const input = [1,2,5,7,8,1,3,5,1,5,6,8,3,5,6,1,3,5,7];
const inputMin = [1,1,2];
/**
* @param {number[]} arr
* @return {number[]}
*/
const removeDuplicates = (arr) => {
const fItem = [];
while (arr.length) {
const el = arr.splice(0, 1)[0];
fItem.push(el);
arr = arr.filter(e => e !== el)
}
return fItem;
}
console.log(removeDuplicates(input))
console.log(removeDuplicates(inputMin))

