diff --git a/combination-sum/reeseo3o.js b/combination-sum/reeseo3o.js new file mode 100644 index 000000000..8d8d4ea57 --- /dev/null +++ b/combination-sum/reeseo3o.js @@ -0,0 +1,20 @@ +const combinationSum = (candidates, target) => { + const result = []; + + const backtrack = (startIndex, current, remaining) => { + if (remaining === 0) { + result.push([...current]); + return; + } + if (remaining < 0) return; + + for (let i = startIndex; i < candidates.length; i++) { + current.push(candidates[i]); + backtrack(i, current, remaining - candidates[i]); + current.pop(); + } + }; + + backtrack(0, [], target); + return result; +}; diff --git a/number-of-1-bits/reeseo3o.js b/number-of-1-bits/reeseo3o.js new file mode 100644 index 000000000..9206d9a8e --- /dev/null +++ b/number-of-1-bits/reeseo3o.js @@ -0,0 +1 @@ +const hammingWeight = (n) => n.toString(2).split("").filter(b => b === "1").length; diff --git a/valid-palindrome/reeseo3o.js b/valid-palindrome/reeseo3o.js new file mode 100644 index 000000000..97bdad734 --- /dev/null +++ b/valid-palindrome/reeseo3o.js @@ -0,0 +1,5 @@ +const isPalindrome = (s) => { + const cleaned = s.toLowerCase().replace(/[^a-z0-9]/g, ''); + const reversed = cleaned.split('').reverse().join(''); + return cleaned === reversed; +};