recursion - 乘法持久性的大 O 表示法?
问题描述
递归(或迭代)乘法持久性算法的时间和空间复杂度是多少?
在这种情况下,我们将每个数字相乘,直到我们得到一个数字,然后返回运行的次数。
前任。从 49 开始
4 * 9 = 36
3 * 6 = 9
return 2 因为它只运行了两次。
function persistence(num) {
const stringNum = String(num);
if (String(num).length === 1) return 0;
let newNum = 1;
for (let i = 0; i < stringNum.length; i++) {
newNum *= stringNum[i];
}
return 1 + persistence(newNum);
}
解决方案
推荐阅读
- node.js - 为什么使用 typescript 的 node.js 项目在导入 json 文件时需要在 typescript 编译器选项中声明 ResolveJsonModule 为 true?
- javascript - HTML 视频没有在部署的站点上播放,真的很不稳定
- visual-studio-code - VSCode 使用 CLI 与快捷方式打开时的不同权限(macOS Catalina)
- python - 手动实现python字符串实习
- python - 如何使用 Python 从 CSV 中指定多个文本分隔符
- android - Gradle 使用 api 定义依赖项,但在 api 配置和实现配置中都发现了依赖项
- angular - 从 API 提供一对多的正确方法?
- kotlin - Kotlin 递归反射
- python - python找到所有最佳匹配数组
- python - mod-wsgi 在使用 https 和大数据包发布期间挂起