TGViewer
Алгоритмы - Собеседования, Олимпиады, ШАД Алгоритмы - Собеседования, Олимпиады, ШАД @algoses · 12.1K subscribers
Post #580 4.3K
Задача с собеседования в TCS

Дан целочисленный массив nums, передвиньте все чётные числа в начало массива, а за ними — все нечётные.
Верните любой массив, удовлетворяющий этому условию.

Пример 1:
Input: nums = [3,1,2,4]
Output: [2,4,3,1]
Explanation: результаты [4,2,3,1], [2,4,1,3] и [4,2,1,3] также были бы приняты.

Пример 2:
Input: nums = [0]
Output: [0]

Ограничения:
1 <= nums.length <= 5000
0 <= nums[i] <= 5000

НАШ ЧАТ АЛГОРИТМИСТОВ

Решение
Используем метод двух указателей, движущихся в одном направлении (в этом случае сохранится относительный порядок чётных чисел в массиве):
left - индекс, указывающий, куда нужно записать следующее чётное число;
right - указатель, который проходит по массиву и последовательно проверяет каждый эл-т на чётность.
Вначале оба указателя указывают на первый эл-т.

Проходим указателем right по массиву nums:
- если число чётное: меняем его местами с числом на позиции left;
- сдвигаем указатель left вправо.

В конце возвращаем изменённый массив nums.


Сложность
O(n) - по времени (проходим по массиву длиной n)
O(1) - по памяти (храним две переменные, меняем эл-ты in-place)


Код
class Solution:
def sortArrayByParity(self, nums: List[int]) -> List[int]:
left = 0

for right in range(len(nums)):
if nums[right] % 2 == 0:
nums[left], nums[right] = nums[right], nums[left]
left += 1

return nums

@algoses
  • 🔥 6
  • ❤ 2
  • 🤔 1
More from @algoses
  1. Sep 19, 2026Полный цикл отбора в Spectral на SWE (HFT) Недавно рассказывали про отбор в Fast Forward н…
  2. Sep 18, 2026❗️ Яндекс открыл Intern Week Offer на стажировку, где всего за неделю ты можешь получить о…
  3. Sep 18, 2026Задача с собеседования в Zeta Зима близко! Во время соревнования ваша первая задача - спро…
  4. Sep 17, 2026Как стать квантом Сегодня многие талантливые амбициозные ребята хотят попасть в хфт и стат…
  5. Sep 13, 2026Как и зачем тащить ICPC ICPC в большинстве регионов проходит в 4 этапа. Даты зависят от ре…
  6. Sep 12, 2026Как попасть в HFT компанию HFT компании зарабатывают на небольших изменениях цен, осуществ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →