数据结构算法操作试题(C++/Python)——两数相除
数据结构算法操作试题(C++/Python):数据结构算法操作试题(C++/Python)——目录
1. 题目
leetcode 链接:https://leetcode-cn.com/problems/divide-two-integers/
2. 解答
python: 36ms, 10.8MB
class Solution(object):
def divide(self, dividend, divisor):
"""
:type dividend: int
:type divisor: int
:rtype: int
"""
if divisor == 1:
return dividend
if divisor == -1:
if -dividend > 2**31-1:
return 2**31-1
else :
return -dividend
if abs(dividend) < abs(divisor):
return 0
flag = 1
if dividend >= 0 > divisor or dividend <= 0 < divisor :
flag = -1
tmpDividend = abs(dividend)
tmpDivisor = abs(divisor)
result = 0
fac = 1
incDivisor = tmpDivisor
while tmpDividend >= tmpDivisor :
if tmpDividend < incDivisor :
incDivisor = tmpDivisor
fac = 1
tmpDividend -= incDivisor
result += fac
incDivisor += incDivisor
fac += fac
return result*flag
其他方法看 leetcode 链接 评论区~