1. Сумма комбинации

Имея набор чисел-кандидатов (candidates) (без дубликатов) и целевое число (target), найдите все уникальные комбинации в candidates, где сумма чисел-кандидатов равна target.

Один и тот же повторяющийся номер может быть выбран из candidates неограниченного количества раз.

Примечание.

  • Все числа (включая target) будут целыми положительными числами.
  • В наборе решений не должно быть повторяющихся комбинаций.

Пример 1:

Input: candidates = [2,3,6,7], target = 7,
A solution set is:
[
  [7],
  [2,2,3]
]

Пример 2:

Input: candidates = [2,3,5], target = 8,
A solution set is:
[
  [2,2,2,2],
  [2,3,3],
  [3,5]

2. Комбинированная сумма II

Имея набор чисел-кандидатов (candidates) и целевое число (target), найдите все уникальные комбинации в candidates, где сумма чисел-кандидатов равна target.

Каждое число в candidates может использоваться только один раз в комбинации.

Примечание.

  • Все числа (включая target) будут целыми положительными числами.
  • В наборе решений не должно быть повторяющихся комбинаций.

Пример 1:

Input: candidates = [10,1,2,7,6,1,5], target = 8,
A solution set is:
[
  [1, 7],
  [1, 2, 5],
  [2, 6],
  [1, 1, 6]
]

Пример 2:

Input: candidates = [2,5,2,1,2], target = 5,
A solution set is:
[
  [1,2,2],
  [5]
]

3. Перестановки

Учитывая набор различных целых чисел, вернуть все возможные перестановки.

Пример:

Input: [1,2,3]
Output:
[
  [1,2,3],
  [1,3,2],
  [2,1,3],
  [2,3,1],
  [3,1,2],
  [3,2,1]
]

4. Перестановки II

Учитывая набор чисел, которые могут содержать дубликаты, вернуть все возможные уникальные перестановки.

Пример:

Input: [1,1,2]
Output:
[
  [1,1,2],
  [1,2,1],
  [2,1,1]
]

5. Подмножества

Учитывая набор различных целых чисел, nums, вернуть все возможные подмножества (степенной набор).

Примечание. Набор решений не должен содержать повторяющихся подмножеств.

Пример:

Input: nums = [1,2,3]
Output:
[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]

6. Подмножества II

Учитывая набор целых чисел, которые могут содержать дубликаты, nums, вернуть все возможные подмножества (степенной набор).

Примечание. Набор решений не должен содержать повторяющихся подмножеств.

Пример:

Input: [1,2,2]
Output:
[
  [2],
  [1],
  [1,2,2],
  [2,2],
  [1,2],
  []
]