Java实现 LeetCode 258 各位相加
2024-09-02 18:31:37
258. 各位相加
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。
示例:
输入: 38
输出: 2
解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。
进阶:
你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?
找规律。假设 num = 384 = 3 * 100 + 8 * 10 + 4
第一轮计算 sum = 15 = 3 + 8 + 4
差值 = 3 * 99 + 8 * 9 = (3 * 11 + 8) * 9 即差值为9的倍数
第二轮计算 num = 15 = 1 * 10 + 5
sum = 6 = 1 * 0 + 5
差值 = 9
由此得出规律:num % 9
注意:需要注意 9 的整倍数最终结果应该返回9,小于10的数直接返回
class Solution {
public int addDigits(int num) {
return (num-1)%9+1;
}
}
最新文章
- Android中通过线程实现更新ProgressDialog(对话进度条)
- 办公大楼3D指纹门禁系统解决方案
- sass1:
- PROCESS_YIELD()宏使用及过程分析<;contiki学习笔记之八>;
- 异常处理 Exception
- 如何使用mysql
- .NET获取客户端的操作系统、IP地址、浏览器版本
- 安装lvs过程
- TestNG简介与安装步骤
- 【转载】MySQL之权限管理
- [国嵌笔记][017][Makefile工程管理]
- C++实验七
- IdentityServer4【Introduction】之支持的规范
- CDH:cdh5环境搭建
- 深入了解preventDefault与stopPropagation
- 五校联考R1 Day1T3 平面图planar(递推 矩阵快速幂)
- Memcached系列之一
- kindle 应用程序出错,无法启动选定的应用程序,请重试。问题排查过程及处理方案。
- Cause: org.postgresql.util.PSQLException: ERROR: cached plan must not change result type的前因后果
- nodejs http代理请求