您的位置:首页 > 其它

leetcode--single number

2015-10-22 21:51 225 查看
用数根思想解决single number的思路

数根的定义已经知道,回顾第一条定理:任何数加9的数字根还是其本身。

就是说,一个数n的数根不会因为加9而发生改变。这里实际上有个条件n是保持正整数.0的数根为0;

考虑单个数直接是数根,所以我们把所有数用N*9+n来表示,这样从定理出发,把一个正整数k拆成N*9+n(最大的N)

有了n=k%9 当n>0时,numRoot=n;n就是k的数根;

当n=0时,也就是k=9、18、27等数,numRoot=9;

这就是利用数根知识解决这个问题思路。

置于numRoot=(k-1)%9+1 是对上面式子进行的合并优化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: