Skip to content

Commit cb60463

Browse files
combination-sum.cpp (#63)
1 parent ea9b8d4 commit cb60463

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

C++/combination-sum.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// Solved using backtracking
2+
class Solution {
3+
public:
4+
void recur(vector<vector<int>>& ans, vector<int>& v, vector<int>& candidates, int target, int curr){
5+
if(target==0){
6+
ans.push_back(v);
7+
}
8+
if(target<0){
9+
return;
10+
}
11+
for(int i = curr; i< candidates.size(); i++){
12+
if(candidates[i]<=target){
13+
v.push_back(candidates[i]);
14+
recur(ans,v,candidates,target-candidates[i],i);
15+
v.pop_back();
16+
}
17+
}
18+
}
19+
20+
vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
21+
vector<vector<int>>ans;
22+
vector<int> v;
23+
24+
sort(candidates.begin(), candidates.end());
25+
26+
recur(ans,v,candidates,target,0);
27+
28+
return ans;
29+
}
30+
};

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ Check out ---> [Sample PR](https://github.com/codedecks-in/LeetCode-Solutions/pu
270270
| --- | ------------------------------------------------------------------- | --------------------------------- | ------------------------- | ----------- | ---------- | ---------------- | ---- |
271271
| 037 | [Sudoku Solver](https://leetcode.com/problems/sudoku-solver/) | [C++](./C++/Sudoku-Solver.cpp) | _O(n^2)_ | _O(1)_ | Hard | Hash Table | |
272272
| 980 | [Unique Paths III](https://leetcode.com/problems/unique-paths-iii/) | [C++](./C++/Unique-Paths-III.cpp) | _O(R * C * 2 ^ (R \* C))_ | _O(R \* C)_ | Hard | DFS, Memoization | |
273+
| 39 | [Combination Sum](https://leetcode.com/problems/combination-sum/) | [C++](./C++/combination-sum.cpp) | _O(2^n)_ | _O(n)_ | Medium | Array, Backtracking | |
273274

274275
<br/>
275276
<div align="right">

0 commit comments

Comments
 (0)