समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो अद्वितीय पूर्णांकों की एक सरणी arr को पहले आर्गुमेंट के रूप में और लक्ष्य योग को दूसरे आर्गुमेंट के रूप में लेता है।
हमारे फ़ंक्शन को उन सभी जोड़ों (पुनरावृत्ति की अनुमति के साथ) की संख्या गिननी चाहिए जो लक्ष्य योग तक जुड़ सकते हैं और वह संख्या वापस करनी चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = [1, 2, 3]; const target = 4;
तो आउटपुट होना चाहिए -
const output = 7;
आउटपुट व्याख्या:
क्योंकि, संभावित संयोजन तरीके हैं -
(1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 1)
उदाहरण
इसके लिए कोड होगा -
const arr = [1, 2, 3];
const target = 4;
const sumUpto = (nums = [], target = 1, map = {}) => {
if (target === 0){
return 1;
};
if (typeof map[target] != "undefined"){
return map[target];
};
let res = 0;
for (let i = 0; i < nums.length; i++) {
if (target >= nums[i]){
res += sumUpto(nums, target - nums[i], map);
};
};
map[target] = res;
return res;
};
console.log(sumUpto(arr, target));
आउटपुट
कंसोल में आउटपुट होगा -
7