給定兩個整數,被除數 dividend 和除數 divisor。將兩數相除,要求不使用乘法、除法和 mod 運算子。
返回被除數 dividend 除以除數 divisor 得到的商。
整數除法的結果應當截去(truncate)其小數部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2
示例:
輸入: dividend = 10, divisor = 3輸出: 3
解釋: 10/3 = truncate(3.33333…) = truncate(3) = 3
class
solution
:def
divide
(self, dividend:
int, divisor:
int)
->
int:
sign =
(dividend >0)
^(divisor >0)
dividend =
abs(dividend)
divisor =
abs(divisor)
count =
0while dividend >= divisor:
count +=
1 divisor <<=1
result =
0while count >0:
count -=
1 divisor >>=1
if divisor <= dividend:
result +=
1
if sign: result =
-result
return result if-(
1<<31)
<= result <=(1
<<31)
-1else(1
<<31)
-1
LeetCode29 兩數相除
給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3輸出 3示例 2 輸入 dividend 7,divisor 3輸出 2說...
LeetCode 29 兩數相除
給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3 輸出 3 示例 2 輸入 dividend 7,divisor 3 輸出...
leetcode 29 兩數相除
給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3輸出 3示例 2 輸入 dividend 7,divisor 3輸出 2說...