TGViewer
JavaScript | LeetCode JavaScript | LeetCode @easy_frontend_task · 8.3K subscribers
Post #1537 839
Задача: 39. Combination Sum
Сложность: medium

Дан массив уникальных целых чисел candidates и целевое число target.
Нужно вернуть все уникальные комбинации, где сумма выбранных чисел равна target.
Одно и то же число можно использовать неограниченное количество раз.

Пример:
Input: candidates = [2,3,6,7], target = 7  
Output: [[2,2,3],[7]]


👨‍💻Алгоритм:

1⃣Используем рекурсию + backtracking, начиная с индекса start_idx, чтобы избежать дубликатов.

2⃣На каждом шаге:
- добавляем candidates[i] в текущую комбинацию
- если сумма меньше target, продолжаем поиск
- если сумма равна target, сохраняем копию комбинации
- затем откатываем шаг (pop и вычитаем)

3⃣Повторное использование чисел реализуется тем, что при рекурсивном вызове мы снова передаём i, а не i + 1.

😎Решение:
var combinationSum = function(candidates, target) {
let sols = [];

let sum_rec = (curr_trial, curr_sum, start_idx) => {
for (let i = start_idx; i < candidates.length; i++) {
const c = candidates[i];
curr_sum += c;
curr_trial.push(c);

if (curr_sum < target) {
sum_rec(curr_trial, curr_sum, i);
} else if (curr_sum === target) {
sols.push([...curr_trial]);
}

curr_sum -= c;
curr_trial.pop();
}
};

sum_rec([], 0, 0);
return sols;
};


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_frontend_task
  1. Oct 17, 2026Сложность: medium Задача: 275. H-Index II Дан массив целых чисел citations, где citations[…
  2. Oct 13, 2026Задача: 687. Longest Univalue Path Сложность: medium Дано корень бинарного дерева, верните…
  3. Oct 11, 2026Задача: 651. 4 Keys Keyboard Сложность: medium Представьте, что у вас есть специальная кла…
  4. Oct 9, 2026Задача: 1054. Distant Barcodes Сложность: medium На складе имеется ряд штрих-кодов, где i-…
  5. Oct 9, 2026Задача: 1237. Find Positive Integer Solution for a Given Equation Сложность: medium Если д…
  6. Oct 8, 2026Задача: №19. Remove Nth Node From End of List Сложность: medium Дан связанный список и чис…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →