记忆函数题解

题目链接:

2623. 记忆函数 - 力扣(LeetCode)

思路:

构建一个 map 存储调用结果,args 本身是一个数组,数组是复杂数据类型,每次调用,如果作为 map 的 key 去存储,会导致存储的key不一样,所以我们需要给他转换成 字符串类型,调用 数组的 toString 变成 字符串存储下来即可

代码:

javascript 复制代码
/**
 * @param {Function} fn
 * @return {Function}
 */
function memoize(fn) {
    let cache = new Map()
    return function (...args) {
        console.log(args)
        if (!cache.has(args.toString())) cache.set(args.toString(), fn.apply(this, args))
        return cache.get(args.toString())
    }
}


/** 
 * 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 
 */
相关推荐
不甘先生6 分钟前
Go 中 type、方法与指针接收者:从 str_name.Name() 看懂 Go 的类型系统
开发语言·后端·golang
ShineWinsu12 分钟前
对于 Vue 3:从为什么学 Vue,到声明式渲染与数据响应式的解析
前端·javascript·vue.js
quantdash_cc1 小时前
Python 股票 K 线数据质量校验:字段、缺失值、重复行和价格异常
开发语言·python·数据分析·量化交易·股票数据·quantdash
Zenova EdgeOS1 小时前
工业网关重试机制:从固定间隔到指数退避的工程实战
开发语言·网络·php
嘻哈baby1 小时前
Go 函数中的参数为什么不支持默认值?
java·开发语言·jvm
一晌小贪欢1 小时前
python-第29天:Python面向对象之多态与抽象类
开发语言·python·数据可视化·面向对象·python办公·python多态
Chester_19992 小时前
CSP202312C.树上搜索
开发语言·数据结构·c++·蓝桥杯·stl
Figo_Cheung2 小时前
Figo共振网络宇宙演化论(RNC) :从原初对称破缺到全息大和谐的演化路径研究
开发语言·php·量子计算
leoZ2312 小时前
第 6 篇:SchemaForm 渲染器核心实现
前端·javascript·vue.js·人工智能·神经网络·机器学习·自然语言处理
重生之我来学Python2 小时前
Git-SVN 混合开发,从入门到精通!
开发语言·git·svn·github