#Leet Code# Divide Two Integers
描述:不使用 * / % 完成除法操作。O(n)复杂度会超时,需要O(lg(n))复杂度。
代码:
1 class Solution: 2 # @return an integer 3 def dividePositive(self, dividend, divisor): 4 if dividend < divisor: 5 return 0 6 7 sum = divisor 8 count = 1 9 while sum + sum < dividend: 10 sum += sum 11 count += count 12 13 count += self.dividePositive(dividend - sum, divisor) 14 15 return count 16 17 def divide(self, dividend, divisor): 18 if dividend >= 0: 19 if divisor > 0: 20 return self.dividePositive(dividend, divisor) 21 else: 22 return 0 - self.dividePositive(dividend, 0 - divisor) 23 else: 24 if divisor > 0: 25 return 0 - self.dividePositive(0 - dividend, divisor) 26 else: 27 return self.dividePositive(0 - dividend, 0 - divisor)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步