English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Описание задачи
Дан отсортированный массив, удалите повторяющиеся элементы из массива, сохраните только один повторяющийся элемент и верните новый размер массива.
Требования:
Не.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 (при отправке письма, пожалуйста, замените # на @) для сообщения и предоставления соответствующих доказательств. В случае подтверждения, сайт немедленно удаляет спорное содержимое.