C****y 发帖数: 77 | 1 在leetcode discussion 上发帖没回应,移步mitbbs
http://discuss.leetcode.com/questions/2871/why-my-divide-two-in
给定的输入(-2147483648, 1)在Mac OS X和redhat 5上都能work, 不知道leetcode
为啥超时,oj上似乎也不能调试。
无招,故求助 |
T******e 发帖数: 157 | 2 用的方法对吗,需要用bit operation来做 |
b******7 发帖数: 92 | 3 leetcode上超时是因为死循环了
while ((divisor_abs << (pos+1)) <= dividend_abs)
需要long long 去存divisor_abs
在Mac OS X上不出问题,可能原因是int为64位 |
C****y 发帖数: 77 | 4 看bit operation的答案没看懂。。
【在 T******e 的大作中提到】 : 用的方法对吗,需要用bit operation来做
|
C****y 发帖数: 77 | 5 到位
改成
long long dividend_abs = abs((long long) dividend);
long long divisor_abs = abs((long long) divisor);
work了
还是mitbbs给力
【在 b******7 的大作中提到】 : leetcode上超时是因为死循环了 : while ((divisor_abs << (pos+1)) <= dividend_abs) : 需要long long 去存divisor_abs : 在Mac OS X上不出问题,可能原因是int为64位
|