class Solution(object):
def divide(self, dividend, divisor):
Min_Int=-2 ** 31
Max_Int=2**31-1
times=1
Divisor2Quotient=[]
sign=1
if dividend<0:sign=-1
if divisor<0:sign=sign*-1
divisor=abs(divisor)
dividend=abs(dividend)
power = divisor
while (power<=dividend) :
Divisor2Quotient.append([times,power])
times+=times
power+=power
ans=0
for Quotient_part,subtrahend_part in Divisor2Quotient[::-1]:
if (dividend-subtrahend_part<0):
pass
else:
dividend-=subtrahend_part
ans+=Quotient_part
ans=ans*sign
if ans<Min_Int:ans=Min_Int
elif ans>Max_Int:ans=Max_Int
return ans
相关文章
- 11-22leetcode-29-两数相除
- 11-22[LeetCode]29. Divide Two Integers两数相除
- 11-22Leetcode 29.两数相除 By Python
- 11-22LeetCode(29): 两数相除
- 11-22【算法题目】Leetcode算法题思路:两数相加
- 11-22Leetcode练习(Python):贪心算法类:第134题:加油站:在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开
- 11-22Leetcode练习(Python):数组类:第167题:给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中
- 11-22leetCode29. 两数相除
- 11-22leetcode 29. 两数相除(Divide Two Integers)
- 11-22【LeetCode-29】两数相除