Выбор ответа Middle Перебор с возвратом обновлено
Подмножества с дубликатами
Вопрос
Входной массив [1, 2, 2]. Нужно получить уникальные подмножества. Какое условие пропуска верно после сортировки?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: if (j start && nums[j] === nums[j - 1]) continue. На одном уровне рекурсии одинаковое значение берём только первое.
Варианты ответа
if (nums[j] === nums[j - 1]) continue- Складывать всё в Set строк вида
"1,2" if (path.includes(nums[j])) continueif (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 ошибок.