элементы в листе, можно RemoveAt для нужных элементов или лучше выбрать нужные элементы и сделать новый лист?
Весь список почистить?
Не, по кондишину, отфильтровать
есть removeall https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.removeall?view=net-8.0#system-collections-generic-list-1-removeall(system-predicate((-0)))
RemoveAt O(1), если удалять с конца. Поэтому, чтобы отфильтровать список in-place, можно пройти по списку двумя указателями, смещая элементы влево, потом удалить все, что справа от первого указателя, с помощью list.RemoveAt(list.length - 1)
как ты посчитал O(1)?
Просто RemoveRange
Нет, это смещение. В итоге получится O(N * k)
а ну да, с конца можно и RemoveRange
Да, с конца там в лучшем случае O(1), O(k) если нужно память занулить с ссылками
Обсуждают сегодня