From 1a4eb96c8ba4abbd62cdc75cea53f8f63339f824 Mon Sep 17 00:00:00 2001 From: Pratiksha Kapse Date: Mon, 11 May 2026 19:43:25 -0700 Subject: [PATCH] Backtracking completed --- combination_sum_282.cpp | 34 ++++++++++++++++++++++ expressionAdd_operator_39.cpp | 54 +++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 combination_sum_282.cpp create mode 100644 expressionAdd_operator_39.cpp diff --git a/combination_sum_282.cpp b/combination_sum_282.cpp new file mode 100644 index 00000000..339816b3 --- /dev/null +++ b/combination_sum_282.cpp @@ -0,0 +1,34 @@ +class Solution { +public: + vector> result; + //vector> result; + vector> combinationSum(vector& candidates, int target) { + if(candidates.size()==0) + return {}; + vector path; + + recurse(candidates,target,0 ,path); + return result; + } + void recurse(vector& candidates, int target, int index, vector&path) + { + //base + if(target==0) + { + result.push_back(path); + } + if(target<0) + { + return; + } + + //logic + for(int i=index;i res; + vector addOperators(string num, int target) { + if(num.empty()) + return {}; + string expression=""; + recurse(num, target, 0, 0, 0, expression); + + return res; + } + void recurse(string num, int target, int index, long calc, long tail, string exp) + { + //base + if(index==num.size()) //at the end of string + { + if(target==calc) + { + res.push_back(exp); + return; + } + } + + + ///logic + string currString=""; + long long currNum=0; + for(int i=index; iindex && num[index]=='0')break; + + currString+=num[i]; + currNum=currNum*10+(num[i]-'0'); + + if(index==0) + { + recurse(num, target, i+1, calc+currNum, currNum, exp+currString); + } + else + { + //+ + recurse(num, target, i+1, calc+currNum,+currNum, exp+"+"+currString); + //- + recurse(num, target, i+1, calc-currNum, -currNum, exp+"-"+currString); + //* + recurse(num, target, i+1, calc-tail+tail*currNum, tail*currNum, exp+"*"+currString); + } + + } + + } +};