Дано: целочисленный массив nums и целое число val, требуется удалить все вхождения val в массив. Вернуть количество оставшихся элементов в nums. (Изменить нужно исходный массив, а не создавать новый). Пример:
Вход: nums = [3,2,2,3], val = 3
Выход: 2 Ограничения:
0 <= nums.length <= 100
0 <= nums[i] <= 50
0 <= val <= 100 Решение(Python): 1) C использованием поверхностной копии и генераторного выражения def removeElement(nums: List[int], val: int) -> int:
nums[:] = [x for x in nums if x != val]
return len(nums) Создаём поверхностную копию массива и вставляем в неё новый массив по условию исключений требуемого значения. Временная сложность: цикл дает нам сложность O(n) Пространственная сложность: поскольку мы создаём новый список, то O(n) 2) Не рекомендованный вариант def removeElement(nums: List[int], val: int) -> int:
while val in nums: nums.remove(val) Циклом перебираем все заданный значения val и используя метод .remove удаляем их. Return не требуется так как мы редактируе