Каталог
- 25. Обратные узлы в k-группе
- 26. Удалить дубликаты из отсортированного массива
- 27. Удалить элемент
исходный код | Гитхаб
25. Обратные узлы в k-группе
Литкод | задача 25
Учитывая head
связанного списка, переворачивать узлы списка k
за раз и возвращать измененный список.
k
— положительное целое число, меньшее или равное длине связанного списка. Если число узлов не кратно k
, то неучтенные узлы, в конце концов, должны остаться такими, какие они есть.
Вы не можете изменять значения в узлах списка, могут быть изменены только сами узлы.
Пример 1:
Input: head = [1,2,3,4,5], k = 2 Output: [2,1,4,3,5]
Пример 2:
Input: head = [1,2,3,4,5], k = 3 Output: [3,2,1,4,5]
Ограничения:
- Количество узлов в списке равно
n
. 1 <= k <= n <= 5000
0 <= Node.val <= 1000
26. Удалить дубликаты из отсортированного массива
Литкод | проблема 26
Учитывая массив целых чисел nums
, отсортированный в неубывающем порядке, удалите дубликаты на месте, чтобы каждый уникальный элемент появлялся только один раз. Относительный порядок элементов должен оставаться одинаковым.
Поскольку в некоторых языках невозможно изменить длину массива, вместо этого вы должны поместить результат в первую часть массива nums
. Более формально, если после удаления дубликатов осталось k
элементов, то первые k
элементов из nums
должны содержать окончательный результат. Неважно, что вы оставляете за первыми k
элементами.
Возвратите k
после помещения окончательного результата в первыеk
слотыnums
.
Не не выделяйте дополнительное пространство для другого массива. Вы должны сделать это, изменив входной массив на месте с O(1) дополнительной памяти.
Пользовательский судья:
Судья проверит ваше решение с помощью следующего кода:
int[] nums = [...]; // Input array int[] expectedNums = [...]; // The expected answer with correct length int k = removeDuplicates(nums); // Calls your implementation assert k == expectedNums.length; for (int i = 0; i < k; i++) { assert nums[i] == expectedNums[i]; }
Если все утверждения пройдены, ваше решение будет принято.
Пример 1:
Input: nums = [1,1,2] Output: 2, nums = [1,2,_] Explanation: Your function should return k = 2, with the first two elements of nums being 1 and 2 respectively. It does not matter what you leave beyond the returned k (hence they are underscores).
Пример 2:
Input: nums = [0,0,1,1,1,2,2,3,3,4] Output: 5, nums = [0,1,2,3,4,_,_,_,_,_] Explanation: Your function should return k = 5, with the first five elements of nums being 0, 1, 2, 3, and 4 respectively. It does not matter what you leave beyond the returned k (hence they are underscores).
Ограничения:
1 <= nums.length <= 3 * 104
-100 <= nums[i] <= 100
nums
отсортировано в неубывающем порядке.
27. Удалить элемент
Литкод | задача 27
Учитывая массив целых чисел nums
и целое число val
, удалите все вхождения val
в nums
на месте. Относительный порядок элементов может быть изменен.
Поскольку в некоторых языках невозможно изменить длину массива, вместо этого вы должны поместить результат в первую часть массива nums
. Более формально, если после удаления дубликатов осталось k
элементов, то первые k
элементов из nums
должны содержать окончательный результат. Неважно, что вы оставляете за первыми k
элементами.
Возвратите k
после помещения окончательного результата в первыеk
слотыnums
.
Не не выделяйте дополнительное пространство для другого массива. Вы должны сделать это, изменив входной массив на месте с O(1) дополнительной памяти.
Пользовательский судья:
Судья проверит ваше решение с помощью следующего кода:
int[] nums = [...]; // Input array int val = ...; // Value to remove int[] expectedNums = [...]; // The expected answer with correct length. // It is sorted with no values equaling val. int k = removeElement(nums, val); // Calls your implementation assert k == expectedNums.length; sort(nums, 0, k); // Sort the first k elements of nums for (int i = 0; i < actualLength; i++) { assert nums[i] == expectedNums[i]; }
Если все утверждения пройдены, ваше решение будет принято.
Пример 1:
Input: nums = [3,2,2,3], val = 3 Output: 2, nums = [2,2,_,_] Explanation: Your function should return k = 2, with the first two elements of nums being 2. It does not matter what you leave beyond the returned k (hence they are underscores).
Пример 2:
Input: nums = [0,1,2,2,3,0,4,2], val = 2 Output: 5, nums = [0,1,4,0,3,_,_,_] Explanation: Your function should return k = 5, with the first five elements of nums containing 0, 0, 1, 3, and 4. Note that the five elements can be returned in any order. It does not matter what you leave beyond the returned k (hence they are underscores).
Ограничения:
0 <= nums.length <= 100
0 <= nums[i] <= 50
0 <= val <= 100