# beginner – Q: Leetcode 377. Combination Sum IV Javascript Memoization attempt

I am new to dynamic programming and am trying to implement a top-down memoization approach instead of using a bottom up tabulation approach as per usual practice. This is my attempt at implementing. Have also left the Map and Javascript object variants in the code in case it is useful for discussion.

``````var combinationSum4 = function(nums, target) {
// const myDict = {};
const myDict = new Map();
const ans = memoCombinationSum4(nums, target, myDict)
return ans;
}

var memoCombinationSum4 = function(nums, target, myDict) {

if (target === 0) {
myDict(target) = 1;
// myDict.set(target, 1);
return 1;
} else if (target < 0) {
return 0;
}

let total = 0;

for (let ele of nums) {
if (!myDict(target - ele)) {
total+= memoCombinationSum4(nums, target - ele, myDict)
} else {
total += myDict(target - ele)
// total += myDict.get(target - ele);
}

}

// myDict.set(target, total);
myDict(target) = total;
``````var nums =  (10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,111);