记忆化搜索

记忆化搜索

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

题目链接 数不清的数

原本的代码

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

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

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

相关推荐
墨染天姬几秒前
[AI]OPENAI的PPO算法
人工智能·算法
cici1587418 分钟前
含风光储燃的微电网能量管理系统(PSO优化)
算法
Das130 分钟前
图像色彩迁移技术算法及基本原理
算法
发疯幼稚鬼34 分钟前
二叉树的广度优先遍历
c语言·数据结构·算法·宽度优先
谭欣辰36 分钟前
C++ DFS 与 BFS 剪枝方法详解
c++·算法·剪枝
Via_Neo1 小时前
乘积最大问题
数据结构·算法
CN-Dust1 小时前
【C++专题】格式化输出与输入
开发语言·c++·算法
自我意识的多元宇宙1 小时前
数据结构----插入排序
数据结构·算法·排序算法
im_AMBER1 小时前
Leetcode 162 除了自身以外数组的乘积 | 接雨水
开发语言·javascript·数据结构·算法·leetcode
Westward-sun.1 小时前
YOLO目标检测算法与mAP评估指标详解(附示例)
算法·yolo·目标检测