leetcode--single number

本文介绍了一种使用数根理论解决Single Number问题的方法。通过将任意正整数表示为N*9+n的形式,并利用数根不变性原理,可以有效地找出数组中唯一出现一次的数字。文章详细解释了如何计算数根并给出了优化后的公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                             用数根思想解决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 是对上面式子进行的合并优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值