Выбор ответа Middle Перебор с возвратом обновлено

Подмножества с дубликатами

Вопрос

Входной массив [1, 2, 2]. Нужно получить уникальные подмножества. Какое условие пропуска верно после сортировки?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: if (j start && nums[j] === nums[j - 1]) continue. На одном уровне рекурсии одинаковое значение берём только первое.

Варианты ответа

  1. if (nums[j] === nums[j - 1]) continue
  2. Складывать всё в Set строк вида "1,2"
  3. if (path.includes(nums[j])) continue
  4. if (j > start && nums[j] === nums[j - 1]) continueправильный ответ

Разбор

На одном уровне рекурсии одинаковое значение берём только первое. Условие j > start разрешает взять второе 2 глубже, после первого (подмножество [2, 2]).

  • Без j > start пропадёт [1, 2, 2] и [2, 2].
  • Set строк работает, но делает лишнюю работу и память.
  • includes запретит любые повторы значения, и [2, 2] потеряется.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме