English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Удаление дублирующих элементов из отсортированного массива в Java

Описание задачи

Дан отсортированный массив, удалите повторяющиеся элементы из массива, сохраните только один повторяющийся элемент и верните новый размер массива.

Требования:
Не.allocate дополнительное пространство для массива, вы должны использовать постоянный размер памяти для операции на месте.

Например:
Дайте массив A=[1,1,2], после вызова вашей функции она должна вернуть длину length=2, и A теперь становится [1,2].

Вход

Уже отсортированный массив, например, [1,1,2].

Вывод

Верните новый размер массива, например, length=2.

Метод быстрого и медленного указателей

Установите быстрый указатель для遍ения массива и медленный указатель для указания на следующий элемент без повторения.

public static int removeDuplicates(int[] nums)
{
  if (nums.length < 1)
    возврат nums.length;
  int slow = 1;
  for (int fast = 1; fast < nums.length; fast++) {
    if (nums[fast] != nums[slow - 1]) {
      nums[slow++] = nums[fast];
    }
  }
  возврат slow;
}

Демонстрация анимации:

Расширение

Удалите дублирующиеся элементы из отсортированного массива, сохраняя указанное количество.

public static int removeDuplicatesN(int[] nums, int repeatN)
{
 if (nums.length <= repeatN)
  возврат nums.length;
 int index = repeatN;
 for (int i = repeatN; i < nums.length; i++) {
  if (nums[i] != nums[index - repeatN]) {
   nums[index++] = nums[i];
  }
 }
 возврат index;
}

Вот и все, что есть в этой статье, надеюсь, это поможет вам в изучении. также希望大家多多支持呐喊教程。

Заявление: контент этой статьи взят из Интернета, авторские права принадлежат соответствующему автору. Контент предоставлен пользователями Интернета, самостоятельно загружен, сайт не обладает правами собственности, не underwent редактирование, и не несет ответственности за соответствующие юридические последствия. Если вы обнаружите спорное содержимое о нарушении авторских прав, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (при отправке письма, пожалуйста, замените # на @) для сообщения и предоставления соответствующих доказательств. В случае подтверждения, сайт немедленно удаляет спорное содержимое.

Основной учебник
Вам может понравиться