29. Divide Two Integers leetcode python new season 2016
2016-01-12 12:14
471 查看
Divide two integers without using multiplication, division and mod operator.
If it is overflow, return MAX_INT.
class Solution(object):
MAX_INT = 0x7FFFFFFF
def divide(self, dividend, divisor):
"""
:type dividend: int
:type divisor: int
:rtype: int
"""
if dividend == 0:
return 0
if divisor == 0:
return self.MAX_INT
negative = (dividend > 0) ^ (divisor > 0)
dividend, divisor = abs(dividend), abs(divisor)
result = 0
while dividend >= divisor:
divisor_sum = divisor
count = 1
while divisor_sum << 1 <= dividend:
divisor_sum <<= 1
count <<= 1
dividend -= divisor_sum
result += count
result = self.MAX_INT if not negative and result > self.MAX_INT else result
return -result if negative else result
If it is overflow, return MAX_INT.
class Solution(object):
MAX_INT = 0x7FFFFFFF
def divide(self, dividend, divisor):
"""
:type dividend: int
:type divisor: int
:rtype: int
"""
if dividend == 0:
return 0
if divisor == 0:
return self.MAX_INT
negative = (dividend > 0) ^ (divisor > 0)
dividend, divisor = abs(dividend), abs(divisor)
result = 0
while dividend >= divisor:
divisor_sum = divisor
count = 1
while divisor_sum << 1 <= dividend:
divisor_sum <<= 1
count <<= 1
dividend -= divisor_sum
result += count
result = self.MAX_INT if not negative and result > self.MAX_INT else result
return -result if negative else result
相关文章推荐
- leetcode之Convert Sorted List to Binary Search Tree
- leetcode之Convert Sorted Array to Binary Search Tree
- python中的lib的一些安装方法
- python脚本导入mysql中文乱码
- 28. Implement strStr() leetcode Python new season 2016
- WIN10 64bit python3.4 安装 numpy scipy matplotlib
- python代码段
- 27. Remove Element leetcode python 2016 new season
- Python 连接 MySQL数据库
- python数字图像处理(6):图像的批量处理
- python操作MySQL数据库
- python遍历文件夹并实现分级缩进显示
- Python -- str 类
- python中if __name__ == '__main__': 的解析
- python生成随机数组
- Python异常处理
- Python中的method
- Python下划线与命名规范
- Python开发Webservice(SOAP)
- WIN10 64bit python2.7 安装 numpy scipy matplotlib