TGViewer
JavaScript | LeetCode JavaScript | LeetCode @easy_frontend_task · 8.33K subscribers
Post #2445 614
Задача: 40. Combination Sum II
Сложность: medium

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

Пример:
  
Input: candidates = [10,1,2,7,6,1,5], target = 8
Output: [[1,1,6],[1,2,5],[1,7],[2,6]]


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

1⃣ Отсортировать массив candidates для возможности пропуска дубликатов.

2⃣. Запустить рекурсивную функцию backtrack(start, trackSum):
- Если trackSum == target — сохранить копию текущей комбинации
- Если trackSum > target — прекратить ветку
- На каждом шаге пропускать повторяющиеся элементы (если i > start && nums[i] == nums[i - 1])
- Не переиспользовать текущий элемент — следующий вызов с i + 1

3⃣ Использовать track для текущей комбинации и trackSum для суммы

😎 Решение:
var combinationSum2 = function(candidates, target) {
const res = [];
const track = [];
let trackSum = 0;

const backtrack = (nums, start) => {
if (trackSum === target) {
res.push([...track]);
return;
}
if (trackSum > target) return;

for (let i = start; i < nums.length; i++) {
if (i > start && nums[i] === nums[i - 1]) continue;
track.push(nums[i]);
trackSum += nums[i];
backtrack(nums, i + 1);
track.pop();
trackSum -= nums[i];
}
}

candidates.sort((a, b) => a - b);
backtrack(candidates, 0);
return res;
};


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_frontend_task
  1. Oct 9, 2026Post #2571
  2. Oct 9, 2026Задача: 1054. Distant Barcodes Сложность: medium На складе имеется ряд штрих-кодов, где i-…
  3. Oct 9, 2026Задача: 1237. Find Positive Integer Solution for a Given Equation Сложность: medium Если д…
  4. Oct 8, 2026Задача: №19. Remove Nth Node From End of List Сложность: medium Дан связанный список и чис…
  5. Oct 7, 2026Задача: 1057. Campus Bikes Сложность: medium В городке, изображенном на плоскости X-Y, ест…
  6. Oct 7, 2026🔥 Скрытые вакансии с удаленной работой для Frontend разработчика, которые нигде больше не…
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 →