From d16d60bc9ae57b46bb7935f8441ee0e1663e2c3e Mon Sep 17 00:00:00 2001 From: anish602 <116447899+anish602@users.noreply.github.com> Date: Sat, 22 Oct 2022 21:35:27 +0530 Subject: [PATCH] Created Combination Sum II Added leetcode backtracking standard question Combination Sum II. Kindly Review it and merge it. --- Back-Tracking/Combination Sum II | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Back-Tracking/Combination Sum II diff --git a/Back-Tracking/Combination Sum II b/Back-Tracking/Combination Sum II new file mode 100644 index 0000000..aaa873f --- /dev/null +++ b/Back-Tracking/Combination Sum II @@ -0,0 +1,35 @@ +class Solution { +public: + void recursion(int idx,vector&candidates,map,int>&mp,vector&v,int target,int& sum) { + if(sum == target) { + mp[v]++; + return; + } + for(int i = idx; i < candidates.size();++i){ + if(sum + candidates[i] <= target){ + sum += candidates[i]; + v.push_back(candidates[i]); + } else + continue; + recursion(i+1,candidates,mp,v,target,sum); + v.pop_back(); + sum -= candidates[i]; + while(i+1 < candidates.size() and candidates[i] == candidates[i+1]){ + i++; + } + } + } + vector> combinationSum2(vector& candidates, int target) { + sort(candidates.begin(),candidates.end()); + vector> ans; + map,int> mp; + vector v; + int sum = 0; + recursion(0,candidates,mp,v,target,sum); + for(auto m:mp){ + ans.push_back(m.first); + } + return ans; + + } +};