Задача №90 на LeetCode — это как собирать рюкзак в поход, но с хитростью: у вас есть одинаковые предметы, и вы не хотите брать с собой два одинаковых набора! Сегодня разберём, как генерировать все возможные комбинации без повторов. 🚀 Представьте, что у вас есть коробка с конфетами: 🍫 🍬 🍫 🍭 Подмножество — это любой набор конфет, который вы можете взять из коробки: В коробке могут быть одинаковые конфеты (дубликаты), но наборы не должны повторяться! Дано: [1, 2, 2] ✅ Правильные подмножества: [], [1], [2], [1,2], [2,2], [1,2,2] ❌ Неправильно (дубликаты наборов): [2] встречается дважды (из первого 2 или из второго 2) — но это ОДИН и тот же набор! Дан массив чисел nums (может содержать дубликаты).
Верните все возможные подмножества без дубликатов наборов. Порядок подмножеств и порядок чисел внутри — не важен. Шаг 1: Сортируем → [1, 2, 2] (важно для обработки дубликатов!) Шаг 2: Генерируем подмножества: Начинаем с пустого: [] Добавляем 1: [] → [1] Добавляем первый 2: [] → [2] [1] → [1,2