记忆化搜索

记忆化搜索

在递归过程中,有许多分支被反复计算,会大大降低算法的执行效率。用记忆搜索,讲已经计算出来的结果保存起来,以后需要用到直接去除结果,避免重复运算。

题目链接 数不清的数

原本的代码

外面一层t的while循环,里面再计算1-x的的二进制中1的和,时间复杂度是on的三次方,时间复杂度太大了。

看题目的数据范围,只有31个数字,可以讲1-31的全部计算出来保存到数组中去,下面while直接从数组中取数字即可,减少了一层的时间复杂度。

dp[i]就是以i结尾的二进制数字个数,题目需要求的是0-2的n次方

相关推荐
WHS-_-20229 小时前
Channel Estimation for mmWave High-Mobility Systems With 5G New Radio OFDM (I)
算法·5g
.格子衫.9 小时前
026动态规划之跨步DP——算法备赛
算法·动态规划
roman_日积跬步-终至千里9 小时前
【模式识别与机器学习(7)】主要算法与技术(下篇:高级模型与集成方法)之 扩展线性模型(Extending Linear Models)
人工智能·算法·机器学习
做怪小疯子9 小时前
LeetCode 热题 100——二叉树——二叉树的最大深度
算法·leetcode·职场和发展
Maỿbe9 小时前
暴打力扣之优先级队列(堆)
算法·leetcode·职场和发展
Swift社区9 小时前
LeetCode 438 - 找到字符串中所有字母异位词
算法·leetcode·职场和发展
北冥湖畔的燕雀9 小时前
二叉搜索树:高效查找与删除的实现
数据结构·c++·算法
兩尛9 小时前
矩阵中非1的数量 (2025B卷
线性代数·算法·矩阵
kupeThinkPoem9 小时前
线段树有哪些算法?
数据结构·算法
sheeta19989 小时前
LeetCode 每日一题笔记 日期:2025.11.30 题目:1590.使数组和能被 P 整除
笔记·算法·leetcode