LeetCode刷题-各位相加

作者: 小鲨鱼FF | 来源:发表于2021-07-25 15:13 被阅读0次

前言说明

算法学习,日常刷题记录。

题目连接

各位相加

题目内容

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

示例:

输入: 38

输出: 2

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

进阶:

你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?

分析过程

思路:通过整数num除以10是否大于0判断整数num是否为一位数。

若整数num不是一位数,计算各位相加的和,通过调用函数getPositionSum来判断,调用函数getPositionSum时,传递参数num。

函数getPositionSum,用来计算各位相加的和,如下:

定义各位相加的和为sum,循环判断整数num是否大于0。

若大于0,结束循环,返回各位相加的和sum。

若小于等于0,进行循环操作,通过整数num对10取余获取数位上的值,定义为res,各位相加的和sum累加数位上的值res,整数num除以10减少一位。

解答代码

class Solution {
    public int addDigits(int num) {
        // 通过整数num除以10是否大于0判断整数num是否为一位数
        while (num / 10 > 0) {
            // 若整数num不是一位数,计算各位相加的和
            num = getPositionSum(num);
        }

        // 若是整数num是一位数,则返回整数num作为结果
        return num;
    }

    // 计算各位相加的和
    private int getPositionSum(int num) {
        // 定义各位相加的和
        int sum = 0;

        while (num > 0) {
            // 通过整数num对10取余获取数位上的值
            int res = num % 10;
            // 累加数位上的值
            sum += res;
            // 整数num除以10减少一位
            num = num / 10;
        }

        return sum;
    }
}

提交结果

执行用时1ms,时间击败100.00%的用户,内存消耗35.6MB,空间击败42.14%的用户。

运行结果

关注更多

更多链接:更多链接

相关文章

  • LeetCode刷题-各位相加

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

  • LeetCode第2题题解:两数相加

    LeetCode第2题:两数相加 Ps:本系列文章只为记录自己刷LeetCode过程中的解题过程和思路。 题目来源...

  • Python小白 Leetcode刷题历程 No.1-No

    Python小白 Leetcode刷题历程 No.1-No.5 两数之和、两数相加、无重复字符的最长子...

  • LeetCode刷题-两数相加

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

  • Two Sum

    一直听说LeetCode,今天第一次刷题,之前没有接触过算法,记录自己的刷题。 思路:两个数整数相加等于targe...

  • leetcode各位相加

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

  • LeetCode刷题002:两数相加

    题目:两数相加 难度: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,...

  • leetcode 刷题 题2.两数相加

    给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 ...

  • 程序猿刷题网站你知道吗?

    Coderbyte 刷题网LeetCode 刷题网Stack Overflow 刷题网

  • LeetCode刷题

    LeetCode刷题

网友评论

    本文标题:LeetCode刷题-各位相加

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