Сложность: easy
Учитывая целочисленный массив
nums, отсортированный в неубывающем порядке, удалите дубликаты на месте так, чтобы каждый уникальный элемент появлялся только один раз. Относительный порядок элементов должен оставаться неизменным. Затем верните количество уникальных элементов. Пример:
Input: nums = [1,1,2,2,2,3,4,4,5]
Output: 5
👨💻Алгоритм:
1⃣Используем указатель
k для отслеживания позиции, куда вставлять уникальные элементы. 2⃣Проходим по массиву, начиная со второго элемента, и сравниваем его с предыдущим.
3⃣Если текущий элемент отличается от предыдущего, записываем его на позицию
k и увеличиваем k. 😎Решение:
func removeDuplicates(_ nums: inout [Int]) -> Int {
if nums.isEmpty { return 0 }
var k = 1
for i in 1..<nums.count {
if nums[i] != nums[k - 1] {
nums[k] = nums[i]
k += 1
}
}
return k
}Ставь 👍 и забирай 📚 Базу знаний