2
def divide(self, dividend: int, divisor: int) -> int:3
# Solution 1 - bitwise operator <<5
positive = (dividend < 0) is (divisor < 0)6
dividend, divisor = abs(dividend), abs(divisor)11
while dividend >= divisor:13
while dividend >= temp:20
return max(-2147483648, -quotient)22
return min(quotient, 2147483647)24
# Solution 2 - cumulative sum - faster than bitwise25
positive = (dividend < 0) == (divisor < 0)26
dividend, divisor = abs(dividend), abs(divisor)33
while _sum <= dividend:35
while (_sum + _sum) <= dividend:37
current_quotient += current_quotient40
quotient += current_quotient42
return max(-2147483648, -quotient)44
return min(quotient, 2147483647)