https://leetcode.com/problems/divide-two-integers/
2015-04-22 12:36
357 查看
https://leetcode.com/problems/divide-two-integers/
不许用乘除计算除法 最开始想用减法 但是想想就知道会超时
位运算可以相当于*2来用
还要考虑正负的问题
另外溢出也要考虑 因为MIN_INT和MAX_INT仅数值相比 要大一 MIN做完除法变成MAX时会溢出
不许用乘除计算除法 最开始想用减法 但是想想就知道会超时
位运算可以相当于*2来用
还要考虑正负的问题
另外溢出也要考虑 因为MIN_INT和MAX_INT仅数值相比 要大一 MIN做完除法变成MAX时会溢出
class Solution: # @param dividend, an integer # @param divisor, an integer # @return an integer def getnumber(self,dividend, divisor): n=0 while dividend>=divisor+divisor: divisor=divisor<<1 n=n+1 return n def divide(self, dividend, divisor): solution=0 n=0 up=1 down=1 MAX_INT=2147483647 if dividend<0: up=-1 if divisor<0: down=-1 if dividend==0: return 0 if divisor==0: return False if up==down: sign=1 else: sign=-1 dividend=abs(dividend) divisor=abs(divisor) while dividend>divisor: n=Solution().getnumber(dividend, divisor) solution=solution+2**n dividend=dividend-(divisor<<n) if dividend==divisor: solution=solution+1 if up!=down: solution=0-solution if solution>MAX_INT: solution=MAX_INT return solution
相关文章推荐
- https://leetcode.com/problems/two-sum/
- https://leetcode.com/problems/add-two-numbers/
- LeetCode(29)Divide Two Integers
- https://leetcode.com/problems/search-a-2d-matrix/
- leetcode 029 —— Divide Two Integers
- [Leetcode] divide two integers 两数相除
- [LeetCode] 数学计算模拟类问题:加法,除法和幂,注意越界问题。题 剑指Offer,Pow(x, n) ,Divide Two Integers
- https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/
- LeetCode029 Divide Two Integers
- LeetCode--divide-two-integers
- [LeetCode] Divide Two Integers
- 【Leetcode】 Divide Two Integers
- leetcode Divide Two Integers python
- 29. Divide Two Integers leetcode python new season 2016
- LeetCode (29)Divide Two Integers
- LeetCode题解——Divide Two Integers
- [LeetCode] 29. Divide Two Integers 两数相除
- LeetCode : Divide Two Integers [java]
- leetcode ——29——Divide Two Integers
- leetcode面试准备:Divide Two Integers