20170708-leetcode-258-Add Digits
来源:互联网 发布:nc数据库 编辑:程序博客网 时间:2024/06/07 09:34
1.Description
Given a non-negative integer num
, repeatedly add all its digits until the result has only one digit.
For example:
Given num = 38
, the process is like: 3 + 8 = 11
, 1 + 1 = 2
. Since 2
has only one digit, return it.
Follow up:
Could you do it without any loop/recursion in O(1) runtime?
解读:按照O(1)的时间复杂度计算一个数字的各个位数的和,如果和超过两位数,继续求和,一直到为0
注:这样的问题很明显是找规律的,那就一个个开始试了
2.Solution
举个例子123456789
第1位:100000000%9=1
第2位:20000000%9=2
…
第8位:80%9=8
第9位:9%9=0(这里可以稍微变换一下)
等式两边相加:
num%9=sum(num[0]+…+num[8])
所以:
class Solution(object): def addDigits(self, num): """ :type num: int :rtype: int """ if num == 0: return 0 else: return ((num - 1) % 9 + 1)
或者简写成下面的形式
return num % 9 or 9 if num else 0
阅读全文
0 0
- 20170708-leetcode-258-Add Digits
- leetcode 258: Add Digits
- 258Add Digits - LeetCode
- leetCode #258 Add Digits
- [LeetCode 258] Add Digits
- LeetCode(258)Add Digits
- leetcode-258-Add Digits
- [leetcode 258]Add Digits
- [Leetcode]#258 Add Digits
- LeetCode 258----Add Digits
- LeetCode 258 : Add Digits
- 【LeetCode】258 Add Digits
- Leetcode - 258 - Add Digits
- leetcode 258 :Add Digits
- leetcode 258--Add Digits
- leetcode 258 Add Digits
- Leetcode #258 Add Digits
- LeetCode 258:Add Digits
- Java基础之重写(覆写)与重载区别
- Codeforces Round #394 (Div. 2) C. Dasha and Password —— 枚举
- centos7 firewall 防火墙 命令
- Android-自定义UI-设置画布的大小
- EffectiveJava(笔记五) 枚举和注解
- 20170708-leetcode-258-Add Digits
- js中取小数整数部分函数
- gulp的实时刷新、代码压缩、代码排错
- Java 获取指定日期的方法总结
- Android开发进阶—Android的消息机制
- 好的json解析
- 通过StackTraceElement获取方法调用者的具体信息
- 滴滴工程师HBasecon2017参会感受
- 集群与分布式