美文网首页
leetcode 算法-各位相加(递归)

leetcode 算法-各位相加(递归)

作者: Weastsea | 来源:发表于2020-04-23 17:19 被阅读0次

说明

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。

示例:

输入: 38
输出: 2 
解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。

首先是使用递归的方式实现:

解题思路:
1:首先要判断递归截止条件
2:递归的每一步需要做什么
3:一点不要忘记return 递归函数

var addDigits = function (num) {
    const numArr = num.toString().split('')
    // 这是递归截止条件
    if (numArr.length === 1) {
        return num
    }
    let total = 0
    // 拆分递归步骤
    numArr.forEach((item) => {
        total += parseInt(item)
    })
    return addDigits(total)
}
执行效率

进阶:
你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?我思考了良久没有头绪,后来参考一个大佬的代码:

var addDigits = function (num) {
    return ((num - 1) % 9) + 1
}
执行效率也是牛逼

文章可以参考:只看代码很难理解,用到了数学的归纳法,可以对比这三个去理解这个算法。
https://leetcode-cn.com/problems/add-digits/solution/java-o1jie-fa-de-ge-ren-li-jie-by-liveforexperienc/
https://leetcode-cn.com/problems/add-digits/solution/o1jie-fa-can-kao-jiao-you-jie-fa-hou-dui-suan-fa-s/
https://leetcode-cn.com/problems/add-digits/solution/python-hua-tu-jiang-ming-bai-o1zuo-fa-de-yuan-li-b/
https://leetcode-cn.com/problems/add-digits/solution/258ge-wei-xiang-jia-ku-xing-seng-by-kuxingseng/

相关文章

  • leetcode 算法-各位相加(递归)

    说明 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 首先是使用递归的方式实现: 解题思路...

  • LeetCode刷题-各位相加

    前言说明 算法学习,日常刷题记录。 题目连接 各位相加[https://leetcode-cn.com/probl...

  • Count and Say

    标签: C++ 算法 LeetCode 字符串 递归 每日算法——leetcode系列 问题 Count and...

  • Generate Parentheses

    标签(空格分隔): C++ 算法 LeetCode 字符串 递归 每日算法——leetcode系列 问题 Gen...

  • leetcode各位相加

    给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: 38输出: 2解释: 各位...

  • 2019-03-31

    本周学习简单总结 请一定在今天完成LeetCode全部算法题目 Leetcode算法题: 树: 递归:https:...

  • LeetCode-各位相加

    给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 进阶:你可以不使用循环或者递归,且...

  • Swift - LeetCode - 各位相加

    题目 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 示例 1: 输入: n...

  • 使用Memoization优化递归算法

    空闲时在LeetCode上练练算法题,一般来说,很多题目最容易想到的就是递归算法。递归算法不仅容易想到和实现,而且...

  • ARTS 20201208-1215

    Algorithm: 每周至少做一个 LeetCode 的算法题算法题:1 剑指 offer 24: 翻转链表递归...

网友评论

      本文标题:leetcode 算法-各位相加(递归)

      本文链接:https://www.haomeiwen.com/subject/wuiaihtx.html