记忆化搜索

记忆化搜索

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

题目链接 数不清的数

原本的代码

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

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

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

相关推荐
吃着火锅x唱着歌20 小时前
LeetCode 2364.统计坏数对的数目
数据结构·算法·leetcode
qq_3363139320 小时前
java基础-set类集合进阶
java·算法
嵌入式老牛20 小时前
第13章 图像处理之Harris角点检测算法(二)
图像处理·opencv·算法·计算机视觉
渡我白衣20 小时前
哈希的暴力美学——std::unordered_map 的底层风暴、扩容黑盒与哈希冲突终极博弈
java·c语言·c++·人工智能·深度学习·算法·哈希算法
zl_vslam20 小时前
SLAM中的非线性优-3D图优化之相对位姿Between Factor(六)
前端·人工智能·算法·计算机视觉·slam se2 非线性优化
budingxiaomoli20 小时前
算法--位运算
算法
熊猫_豆豆20 小时前
基于A*算法的雷雨绕飞路径MATLAB实现
算法·matlab·航天·a星算法
_F_y21 小时前
二分:山脉数组的峰顶索引、寻找峰值、寻找旋转排序数组中的最小值、点名
c++·算法
Elias不吃糖21 小时前
克隆图(LeetCode 133)——用数组做映射的 DFS 解法
c++·算法·leetcode·深度优先
iiiiii1121 小时前
【论文阅读笔记】IDAQ:离线元强化学习中的分布内在线适应
论文阅读·人工智能·笔记·学习·算法·机器学习·强化学习