【算法心得】正确估计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个)

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

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

相关推荐
Gauss松鼠会6 分钟前
【GaussDB】GaussDB 常见问题及解决方案汇总
java·数据库·算法·性能优化·gaussdb·经验总结
炽烈小老头15 分钟前
【 每天学习一点算法 2026/05/19】二叉树中的最大路径和
学习·算法
人道领域20 分钟前
【LeetCode刷题日记】106.从遍历序列重建二叉树:手撕递归边界,彻底搞懂左闭右闭 vs 左闭右开
java·算法·leetcode
.魚肉21 分钟前
Raft 共识算法 · 演示系统(多终端)
算法·go·raft·分布式系统
念恒1230621 分钟前
Python(while循环)
数据结构·python·算法
神奇小汤圆26 分钟前
字节面试官:你知道Claude Code的多Agent实现机制吗?
算法
运筹vivo@31 分钟前
LeetCode 2540. 最小公共值
算法·leetcode·职场和发展
小许同学记录成长31 分钟前
轻量正射实现原理技术文档
算法·无人机
阿文的代码库32 分钟前
如何在C++中使用标准库的智能指针
开发语言·c++·算法
城事漫游Molly33 分钟前
方差分析(ANOVA)入门——比较三组或更多组均值的利器
大数据·算法·均值算法·论文笔记·科研统计