Описание вопроса
Учитывая отсортированный массив, удалите дублирующие элементы из массива, сохраните только один дублированный элемент и верните новую длину массива.
Требовать:
Не распределяйте дополнительное пространство на массив, вы должны использовать размер памяти постоянной для работы на месте.
Например:
Учитывая массив A = [1,1,2], ваш вызов функции должен возвращать длину = 2, а теперь A теперь становится [1,2].
входить
Сортированный массив, например, [1,1,2].
Выход
Возвращает новую длину массива, например, длина = 2.
Метод быстрых и медленных указателей
Установите быстрый указатель, чтобы пересечь массив и медленный указатель на следующий бит не повторного элемента.
public static int elementuplicates (int [] nums) {if (nums.length <1) return nums.length; int slow = 1; for (int fast = 1; fast <nums.length; fast ++) {if (nums [fast]! = Nums [Slow - 1]) {Nums [Slow ++] = Nums [Fast]; }} вернуться медленно;}Демонстрация анимации:
Расширенный
Удаляет дублирующие элементы из отсортированного массива, оставляя указанное количество цифр.
public static int removeduplicatesn (int [] nums, int repeatn) {if (nums.length <= repeatn) return nums.length; int index = repeatn; for (int i = repeatn; i <nums.length; i ++) {if (nums [i]! = nums [index - repeatn]) {nums [index ++] = nums [i]; }} return index;}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.