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

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

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

相关推荐
小高求学之路30 分钟前
计算机视觉、YOLO算法模型训练、无人机监测人员密集自动识别
算法·yolo·计算机视觉
散峰而望35 分钟前
【基础算法】剪枝与记忆化搜索:算法优化的双刃剑,效率倍增的实战指南
算法·机器学习·剪枝
m0_7488735535 分钟前
C++与Rust交互编程
开发语言·c++·算法
2401_891482178 小时前
多平台UI框架C++开发
开发语言·c++·算法
88号技师8 小时前
2026年3月中科院一区SCI-贝塞尔曲线优化算法Bezier curve-based optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
t198751288 小时前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
x_xbx9 小时前
LeetCode:148. 排序链表
算法·leetcode·链表
Darkwanderor9 小时前
三分算法的简单应用
c++·算法·三分法·三分算法
2401_831920749 小时前
分布式系统安全通信
开发语言·c++·算法
WolfGang00732110 小时前
代码随想录算法训练营 Day17 | 二叉树 part07
算法