[关闭]
@w1024020103 2017-07-30T00:00:40.000000Z 字数 320 阅读 528

Hash Function

LeetCode LintCode DataStructure


Submit 1 : 没有取模, 求和算法也有误
Screen Shot 2017-07-29 at 10.52.06 PM.png-228.4kB

submit 2:
Screen Shot 2017-07-29 at 11.02.46 PM.png-230.5kB

submit3: 这样写是会溢出的,long的最大范围是2^64,超过的话就会溢出,溢出机会变负的,所以要边加sum边取模; 因为内存里数值存的是补码,最高位0代表正1代表负,加的太多把符号位占了就变负了。比如0111(7)+0111(7)=1110(-2) (那1110 = -2是这么看的,首先判断是负数,然后全部取反得到0001, 加1得到0010, 就是2,加上负号就是-2)
Screen Shot 2017-07-29 at 11.14.40 PM.png-234.4kB

AC:
Screen Shot 2017-07-29 at 11.22.06 PM.png-240.2kB
取模运算分配律:
(a+b) % c = (a%c + b%c) % c
(a-b) % c = (a%c - b%c) % c
a * b % c = (a%c * b%c) % c

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注