Leetcode PHP题解--D69 258. Add Digits

D69 258. Add Digits

题目链接

258. Add Digits

题目分析

给定一个数字,给每一位相加,对得到结果进行相同的操作。直到最终结果为一位数。

题目还要求尽量用O(1)的时间复杂度。

思路

暂时没想出O(1)复杂度的,就先用正常的while...do循环完成。

讲数字拆分成数组,用求和函数计算和。判断求和后的值是否大于10。大于则重复操作。小于则退出并返回。

最终代码

<?php
class Solution {

    /**
     * @param Integer $num
     * @return Integer
     */
    function addDigits($num) {
        do{
            $num = str_split($num);
            $total = array_sum($num);
            $num = $total;
        }while($total>=10);
        return $total;
    }
}

若觉得本文章对你有用,欢迎用爱发电资助。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容