【算法心得】正确估计dfs时间复杂度;剪枝优化不怕重构

https://leetcode.cn/problems/verbal-arithmetic-puzzle/

这题看到题,"表达式中使用的不同字符数最大为 10",就觉得dfs就完事了,最多不过10!,10!才1e6,1e7这样。如果字符再少点,6! 7! 8!的,那简直就是嗖的一下就跑完了

结果TLE了

比方说,有7个字符,不是想象中的 7!,而是 10*9*...*4 ,也就是 A 10 7 A_{10}^{7} A107,省的是1*2*3,不是10*9*8,

今天第一次知道leetcode要pass,是要所有点加起来的时间,而不是单个点的时间

所以没剪枝的dfs顶多能跑完一个半case😅

剪枝吧,刚开始为了能用得上之前的代码,就在之前的dfs前包了一层,先dfs个位的,然后剪,再dfs其他的

结果只能跑完20个case (一共34个)

当时真的绝望了,因为已经调了好久了

后来重新写,发现其实也没那么慢,应该早一点重构的。之前的代码未必和后边的代码兼容,与其改不如直接重新写

相关推荐
csdn_aspnet14 小时前
PHP 算法 LeetCode 编号 70 - 爬楼梯
算法·leetcode·php
沈浩(种子思维作者)14 小时前
没有错误,正确将一文不值
人工智能·python·算法·量子计算
x_xbx14 小时前
LeetCode:5. 最长回文子串
算法·leetcode·职场和发展
快手技术14 小时前
免费报名|生成式推荐技术如何实现体系化演进?快手技术沙龙第四期开启!
算法
初夏睡觉14 小时前
数字截断求和 题解
算法
AZaLEan__14 小时前
多源 BFS
java·开发语言·算法
smith成长之旅14 小时前
07 | Mem0 框架分析:三路信号融合——语义 + BM25 + Entity Boost 的混合检索
python·算法
wabs66614 小时前
关于贪心算法章节的【有两个维度问题】的自我总结
算法·贪心算法
未若君雅裁15 小时前
算法复杂度与数据结构:Java 集合篇的第一块基石
java·数据结构·算法
春日见15 小时前
五分钟入门 强化学习---Q-Learning算法与实现
人工智能·python·深度学习·算法·机器学习·计算机视觉