class Solution {http://
public:
int addDigits(int num) {
int n = num;
while(n/10 != 0)
{
int t = 0;
while(n != 0)
{
t+=n%10;
n = n/10;
}
n = t;
}
return n;
}
};
wikipedia给出的算法 O(1)的时间复杂度
class Solution {
public:
int addDigits(int num) {
int n = num;
if(n/10 == 0)
{
return n;
}
return 1+(n-1)%9;
}
};
本文提供了两种实现数字递归累加的算法。一种是通过循环不断将整数拆分为各位数字相加直至结果为一位数的方法;另一种则是利用数学规律直接计算结果,实现了O(1)的时间复杂度。
429

被折叠的 条评论
为什么被折叠?



