Вступить в клуб →
средняяpythonСтек, очередь и куча

k_smallest: k наименьших элементов без порчи исходного списка

Напишите функцию k_smallest(nums: list[int], k: int) -> list[int].

Вход. Список целых чисел nums (может быть пустым, может содержать дубликаты и отрицательные) и целое k.

Выход. Новый список из k наименьших элементов, отсортированный по возрастанию.

Поведение на краевых входах.

  • k <= 0 — вернуть пустой список.
  • k больше длины nums — вернуть все элементы по возрастанию.
  • Пустой nums — вернуть пустой список.
  • Дубликаты считаются отдельными элементами: для [4, 4, 4, 9] и k = 2 ответ [4, 4].

Отдельное требование. Исходный список nums изменять нельзя — после вызова он должен остаться в прежнем порядке.

заготовка решения

def k_smallest(nums: list[int], k: int) -> list[int]:
    # ваш код
    pass

🔒 Проверка ответа — для участников клуба

  • Автотесты прямо в браузере
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела