Below is my code in JavaScript for the problem but in LeetCode it is showing wrong answer for a test case.
/**
* @param {Function} fn
* @return {Function}
*/
function memoize(fn) {
let arr = [];
let result = [];
return function (...args) {
if (!(arr.toString().match(args.toString()))) {
arr.push(args);
let val = fn(...args);
result.push(val);
return val;
} else {
for (let i = 0; i < arr.length; i++) {
if (arr[i].toString() === args.toString()) {
return result[i];
}
}
}
}
}
/**
* let callCount = 0;
* const memoizedFn = memoize(function (a, b) {
* callCount += 1;
* return a + b;
* })
* memoizedFn(2, 3) // 5
* memoizedFn(2, 3) // 5
* console.log(callCount) // 1
*/
Test Case:
“sum”
“[“call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”getCallCount”,”call”,”getCallCount”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”call”,”call”,”call”,”getCallCount”,”getCallCount”,”getCallCount”,”call”,”call”,”call”]”
“[[748,660],[],[],[119,694],[625,645],[452,117],[623,466],[453,270],[],[777,289],[],[],[39,440],[],[32,756],[458,42],[462,913],[],[],[],[768,473],[162,910],[654,628],[],[267,423],[205,989],[],[963,401],[],[629,629],[571,242],[],[686,63],[317,102],[923,383],[866,23],[908,381],[540,344],[124,467],[553,193],[494,40],[4,63],[],[764,24],[971,583],[859,416],[],[207,203],[451,415],[328,423],[40,780],[692,602],[812,100],[823,798],[241,777],[],[],[996,394],[848,568],[541,217],[148,232],[67,40],[275,836],[947,731],[378,320],[],[675,973],[452,574],[],[],[57,178],[433,884],[],[703,228],[],[906,410],[],[88,538],[676,965],[],[613,141],[728,580],[245,623],[388,870],[],[],[],[632,720],[],[],[419,627],[535,832],[81,479],[],[],[],[769,654],[],[436,353],[743,325],[787,864],[786,260],[851,47],[631,962],[],[],[971,536],[301,193],[994,646],[273,614],[878,635],[],[918,16],[],[522,517],[256,194],[52,563],[764,675],[826,818],[721,471],[],[371,386],[],[480,113],[],[],[647,480],[],[],[429,65],[],[],[],[],[420,822],[],[],[666,505],[182,809],[],[83,663],[319,446],[854,820],[],[743,976],[],[268,80],[983,273],[465,78],[],[],[754,942],[912,271],[852,585],[644,969],[],[13,167],[875,770],[231,284],[828,470],[],[56,540],[],[641,304],[205,796],[538,305],[140,895],[841,378],[936,895],[809,844],[427,375],[720,851],[792,286],[],[],[],[384,106],[523,41],[],[928,415],[],[791,915],[],[675,760],[],[339,133],[408,428],[621,392],[],[208,483],[602,826],[],[813,337],[],[788,599],[675,876],[961,350],[],[99,706],[263,670],[93,916],[813,684],[783,887],[967,478],[],[876,264],[927,348],[528,803],[993,12],[849,719],[652,539],[91,952],[],[351,167],[],[],[241,28],[],[775,142],[],[592,467],[202,621],[645,468],[347,205],[],[805,176],[233,708],[58,235],[209,78],[],[],[],[883,497],[98,92],[782,849],[],[432,520],[298,351],[143,922],[609,144],[],[983,134],[815,883],[681,129],[],[673,445],[538,314],[],[242,306],[],[377,440],[],[226,7],[],[650,638],[135,90],[403,852],[],[721,923],[517,301],[],[623,735],[],[584,500],[],[883,671],[525,179],[],[759,38],[],[992,596],[6,938],[43,931],[769,910],[163,328],[],[37,65],[44,929],[],[216,483],[990,417],[12,314],[],[161,204],[],[672,199],[],[],[],[355,964],[],[298,62],[650,69],[405,945],[],[639,144],[],[],[943,863],[965,996],[837,995],[237,622],[301,650],[],[11,495],[580,401],[730,895],[],[314,543],[220,886],[804,913],[30,745],[],[838,345],[],[135,337],[402,884],[857,83],[195,756],[],[],[25,483],[789,848],[263,465],[132,165],[187,467],[],[263,168],[99,994],[],[],[499,18],[750,812],[150,754],[137,732],[31,158],[983,432],[383,802],[792,701],[759,718],[145,922],[],[898,775],[],[],[],[581,862],[945,135],[537,916],[725,380],[341,448],[92,986],[903,467],[],[137,828],[735,653],[578,212],[498,735],[805,745],[],[],[961,155],[37,209],[981,57],[],[],[813,360],[],[],[],[781,897],[],[],[989,765],[744,282],[],[],[747,286],[400,259],[527,917],[385,517],[91,123],[],[591,577],[573,801],[614,550],[],[388,926],[493,368],[],[149,175],[592,565],[518,360],[391,248],[798,249],[555,891],[142,885],[534,132],[],[],[840,672],[516,25],[146,833],[],[748,154],[916,159],[786,52],[311,830],[],[82,635],[],[],[366,691],[],[],[807,488],[952,783],[33,479],[],[],[704,81],[258,725],[915,73],[770,71],[454,214],[229,47],[562,962],[148,829],[],[909,683],[338,64],[],[398,631],[10,510],[963,828],[270,150],[913,595],[868,233],[396,203],[],[1,162],[442,701],[7,462],[856,574],[342,199],[],[503,297],[128,81],[],[],[235,613],[188,351],[],[277,448],[],[253,798],[644,545],[],[403,847],[58,434],[],[177,134],[],[],[178,185],[391,152],[795,976],[816,201],[476,347],[837,109],[642,898],[934,430],[608,733],[],[],[943,654],[147,688],[],[466,457],[882,760],[88,439],[762,502],[571,283],[945,598],[10,252],[],[650,706],[731,150],[841,909],[443,188],[867,264],[982,612],[],[439,525],[250,541],[165,235],[],[],[679,301],[],[],[312,763],[941,758],[576,630],[],[558,722],[765,995],[],[234,141],[597,300],[896,346],[],[],[774,181],[436,516],[572,915],[324,287],[965,800],[],[758,889],[981,715],[811,447],[],[],[],[],[876,240],[675,526],[282,911],[],[191,28],[779,703],[],[55,323],[792,324],[782,609],[349,113],[90,153],[901,920],[54,269],[],[],[499,548],[798,534],[],[594,706],[],[],[613,192],[91,580],[753,4],[631,607],[406,386],[],[633,623],[],[240,32],[971,605],[191,527],[833,68],[],[],[],[452,761],[],[574,74],[190,434],[],[387,657],[],[],[],[],[174,222],[],[145,420],[660,539],[],[546,903],[],[],[],[],[826,314],[841,74],[986,483],[876,117],[],[435,95],[795,861],[],[59,834],[583,868],[358,922],[142,927],[706,249],[],[883,312],[625,202],[256,992],[],[564,731],[656,140],[525,95],[617,811],[],[991,48],[553,161],[533,774],[148,819],[],[861,492],[482,389],[224,434],[],[852,773],[9,529],[919,52],[],[],[953,175],[243,657],[185,958],[508,702],[833,960],[],[912,23],[66,597],[],[848,758],[484,748],[],[302,772],[640,229],[898,166],[958,674],[438,732],[],[444,811],[22,161],[531,182],[442,244],[255,169],[507,783],[],[655,14],[234,256],[],[76,661],[886,410],[338,779],[894,364],[794,418],[486,194],[],[948,443],[780,693],[171,275],[],[194,181],[538,187],[562,660],[],[],[370,678],[297,519],[],[219,103],[59,464],[158,944],[909,463],[],[],[131,640],[716,369],[614,987],[669,483],[],[571,155],[282,315],[],[],[9,652],[],[864,373],[887,136],[984,377],[],[938,940],[],[],[],[335,60],[968,514],[14,856],[141,881],[786,357],[949,840],[427,913],[],[],[448,623],[22,286],[529,745],[419,665],[],[654,228],[],[141,678],[944,38],[854,186],[417,425],[89,194],[219,873],[270,35],[839,786],[31,95],[209,678],[311,166],[172,737],[761,59],[753,918],[200,145],[373,271],[],[],[],[602,126],[799,295],[194,119],[824,485],[276,321],[566,121],[597,545],[285,231],[623,289],[643,472],[],[114,204],[227,149],[],[233,726],[213,792],[],[],[],[363,747],[923,239],[583,674],[658,484],[406,982],[],[927,78],[],[],[354,223],[],[884,408],[100,837],[905,805],[],[26,314],[],[747,924],[],[852,441],[],[193,980],[],[585,439],[],[],[296,173],[881,162],[547,651],[341,961],[472,788],[379,126],[],[896,278],[],[563,623],[],[744,917],[362,661],[158,802],[385,390],[311,217],[5,431],[772,9],[],[781,703],[839,55],[733,704],[125,658],[603,6],[],[],[173,270],[],[671,752],[211,457],[],[351,290],[796,866],[169,148],[],[],[],[747,175],[387,419],[380,661],[793,311],[],[89,565],[15,990],[532,161],[947,211],[537,891],[375,556],[516,95],[193,440],[974,103],[175,508],[503,897],[],[562,893],[],[73,385],[],[],[133,68],[251,784],[763,633],[157,652],[778,681],[512,735],[784,57],[],[564,586],[28,262],[],[287,912],[646,664],[],[791,129],[37,969],[752,769],[532,641],[870,257],[274,805],[],[476,45],[926,373],[920,673],[342,943],[809,857],[],[],[882,699],[775,721],[621,144],[51,586],[639,481],[903,355],[489,692],[539,421],[899,552],[],[7,158],[],[],[606,335],[],[680,467],[],[349,584],[],[131,270],[968,401],[],[],[610,844],[282,103],[687,421],[949,276],[],[44,44],[],[704,492],[915,154],[117,550],[],[610,987],[439,577],[366,558],[230,122],[],[613,117],[],[],[211,778],[145,985],[],[],[],[42,470],[],[],[],[],[136,404],[],[],[],[],[799,535],[302,510],[18,518],[993,529],[855,418],[974,925],[803,906],[],[944,122],[540,541],[898,476],[66,470],[1000,397],[319,146],[481,452],[818,166],[254,416],[290,117],[897,331],[702,973],[],[905,739],[961,564],[159,410],[463,220],[],[277,409],[],[38,682],[468,124],[621,698],[188,462],[735,495],[751,583],[286,198],[567,640],[993,234],[756,675],[],[274,676],[499,119],[450,941],[149,866],[259,678],[13,763],[493,516],[704,734],[305,345],[209,338],[427,86],[489,780],[],[943,91],[480,185],[466,706],[],[92,686],[],[14,404],[378,213],[885,217],[305,99],[],[275,839],[],[281,310],[749,362],[961,696],[579,211],[997,685],[645,105],[252,609],[77,765],[],[],[275,296],[5,683],[816,504],[],[],[],[457,167],[99,867],[354,991]]”
For “sum” input the process is repetitive. Even though for other “sum” input test cases results were accepted, but for the input mentioned here, LeetCode is showing wrong answer.