Рубрики
Без рубрики

Удалить дубликаты из отсортированного массива – LeetCode

Учитывая отсортированный массив чисел с дубликатами, удалите все дубликаты из массива, оставив один из EAC … Tagged с Python, JavaScript, LeetCode.

Учитывая отсортированный массив чисел с дубликатами, удалите все дубликаты из массива, оставив по одному из каждого числа. Вернуть длину массива. Например:

input = [1,1,2,2,2,3,3]
output = [1,2,3]

Эта проблема относительно проста. Если вы хотите сделать это, используя время O (n) и 0 (1), вы хотите использовать два метода указателя. Я создаю экземпляры два указателя, я и J, установленные на 0 и 1 соответственно. Я буду использовать цикл while, и я проверю, равна ли Num с I Index num с j index. Если нет, я увеличиваю их обоих на 1. Если они равны, я выскакиваю число с помощью j индекса.

def removeDuplicates(nums):
    i, j = 0, 1

    while j < len(nums):
        if nums[i] != nums[j]:
            i += 1
            j += 1
        elif nums[i] == nums[j]:
            nums.pop(j)
    return len(nums)

В JavaScript это похоже на:

function removeDuplicates(nums):
    let i = 0;
    let j = 1;
    while (j< nums.length) {
        if (nums[i] != nums[j]) {
            i+= 1;
            j+= 1;
     } else if (nums[i] == nums[j]) {
         nums.splice(j, 1);
}
    return nums.length;
}

В функции JavaScript я использую сплайс вместо POP, так как JavaScript не появляется по индексу. Сплайс берет элемент с указанным индексом, и если есть параметр 1, он удаляет этот элемент.

Оригинал: “https://dev.to/xshirl/remove-duplicates-from-sorted-array-leetcode-2bcj”