Извините, если это глупый вопрос, но у меня возникли проблемы с обдумыванием того, почему этот код работает для удаления дубликатов.
var removeDuplicates = function(nums) {
if (!nums.length) return 0
let j = 0;
for (let i=0; i< nums.length; i++) {
if ( nums[i] !== nums[j] ) {
j++;
nums[j] = nums[i]
}
}
return j + 1
};
Я играю на leetcode, и это был мой ответ.
var removeDuplicates = function(nums) {
let isDuplicates = true
let counter = 0
while (isDuplicates) {
isDuplicates = false
for (let i=0; i<= nums.length - counter; i++){
helper(nums, i, i+1)
isDuplicates = true
}
counter++
}
return nums.length
};
function helper(array, i, j){
if (array[i] === array[j]) array.splice(i, 1);
}
Я наткнулся на первый код, просматривающий другие решения, я пытаюсь улучшить и получить asp детали. Я понимаю, что мой помощник, вероятно, не оптимален, но я играю и учусь. Спасибо за все время!