ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ
Мне хорошо известны дублирующие вопросы, однако этот вопрос просит удалить дубликаты без создания нового массива и хочет, чтобы мы мутировали исходный массив.
ИНСТРУКЦИИ
Учитывая отсортированные номера массивов, удалите дубликаты на месте так, чтобы каждый элемент появлялся только один раз и возвращал новую длину.
Не выделяйте дополнительное пространство для другого массива, вы должны сделать это путем изменения входного массива на месте с помощью O (1) дополнительной памяти.
ПРИМЕР
Учитывая nums = [1,1,2]
,
Ваша функция должна возвращать length = 2, причем первые два элемента nums
равны 1 и 2 соответственно.
Это не ' не имеет значения, что вы оставите после возвращенной длины.
ПОПЫТКА
const removeDuplicates = function(nums) {
for(let i of nums){
if(nums[i] === nums[i]){
nums.splice(i, 1)
}
}
return nums.length;
};
console.log(removeDuplicates([1, 1, 2]));
console.log(removeDuplicates([1, 2]));
// [1, 1, 2] => [1, 2] (Correct)
// [1, 2] => [1] (Incorrect - should be [1, 2])
Правильно ли я мутировал массив с помощью сплайсинга и что мне нужно сделать, чтобы исправить второй аргумент?
Кроме того, в leetcode, когда я запускаю первый аргумент говорит, что это правильно, и возвращает массив оставшихся элементов, но в инструкциях запрашивалась длина нового массива. Не уверен, что я что-то упустил, но почему он не возвращает длину?
https://imgur.com/5cuhFYf