记忆化搜索

记忆化搜索

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

题目链接 数不清的数

原本的代码

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

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

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

相关推荐
炽烈小老头6 分钟前
【每天学习一点算法 2026/03/29】搜索二维矩阵 II
学习·算法·矩阵
靴子学长13 分钟前
Qwen3.5 架构手撕源码
算法·架构·大模型
寒月小酒16 分钟前
3.28 OJ
算法
AI成长日志25 分钟前
【笔面试算法学习专栏】堆与优先队列专题:数组中的第K个最大元素与前K个高频元素
学习·算法·面试
雅俗共赏1001 小时前
医学图像重建中常用的正则化分类
算法
IronMurphy1 小时前
【算法三十二】
算法
Mr_Xuhhh1 小时前
LeetCode 热题 100 刷题笔记:高频面试题详解(215 & 347)
算法·leetcode·排序算法
mmz12071 小时前
贪心算法3(c++)
c++·算法·贪心算法
j_xxx404_1 小时前
蓝桥杯基础--排序模板合集II(快速,归并,桶排序)
数据结构·c++·算法·蓝桥杯·排序算法
月落归舟1 小时前
排序算法---(四)
算法·排序算法