LeetCode *** 258. Add Digits
2016-04-01 11:08
253 查看
题目:
Given a non-negative integer
For example:
Given
Follow up:
Could you do it without any loop/recursion in O(1) runtime?
分析:
如果时间复杂度要求是O(1),那么可以进行如下分析:
那么代码如下:
还有一个代码更加简单,如下:
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
2has only one digit, return it.
Follow up:
Could you do it without any loop/recursion in O(1) runtime?
分析:
如果时间复杂度要求是O(1),那么可以进行如下分析:
数字 | 结果 |
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
10 | 1 |
11 | 2 |
12 | 3 |
13 | 4 |
14 | 5 |
15 | 6 |
16 | 7 |
17 | 8 |
18 | 9 |
19 | 1 |
20 | 2 |
21 | 3 |
22 | 4 |
23 | 5 |
24 | 6 |
25 | 7 |
26 | 8 |
27 | 9 |
28 | 1 |
29 | 2 |
int addDigits(int num) { if(num==0)return 0; if(num%9)return num%9; else return 9; }
还有一个代码更加简单,如下:
int addDigits(int num) { return (num - 1) % 9 + 1; }
相关文章推荐
- 如何读取sd下的json文件,并解析展示,添加到数据库中
- sqlserver、Mysql、Oracle三种数据库的优缺点总结
- 分析可变形字符串序列StringBuilder 以及 StringBuffer之默认大小与扩容
- Android Volley完全解析(一),初识Volley的基本用法
- eclipse启动时报错,显示查看log日志,解决最佳方案
- 浏览器内核判断
- 在ASP.NET MVC3 中利用JSONP跨域登录WEB系统
- 【OpenCV入门指南】人脸检测
- java关于String[] str = new String[]{};
- 【F2E】移动端(webapp)开发性能优化方案
- php垃圾回收和内存管理机制
- CFBundleShortVersionString发布版本号
- Spring@Autowired注解与自动装配
- ubuntu 14.04 64位 桌面版 中文输入法安装
- 欢迎使用CSDN-markdown编辑器
- 一名3年工作经验的程序员应该具备的技能
- 解决“在证书存储区中找不到清单签名证书”
- C 语言 .h文件的作用
- Python 学习文章收藏
- 正则表达式之Regex.Replace()用法