class Solution:
def divide(self, dividend: int, divisor: int) -> int:
result = 0
pointer = 0
if (dividend>=0 and divisor<0) or (divisor>=0 and dividend<0):
pointer=0
else:
pointer=1
dividend=abs(dividend)
divisor=abs(divisor)
while dividend >=divisor:
temp,i=divisor,1
while dividend>=temp:
dividend -= temp
result += i
i <<= 1
temp <<= 1
if pointer==0: result = -result
return min(max(result,-2**31), 2**31-1)
这道题为了加快速度,将除数倍增
溢出可以留意一下,min(max(result,-231) ,231-1)这个方法不错