美文网首页
剑指 Offer II 001. 整数除法

剑指 Offer II 001. 整数除法

作者: 阿凯被注册了 | 来源:发表于2021-08-11 09:33 被阅读0次
image.png

原题链接:https://leetcode-cn.com/problems/xoh6Oh/

解题思路:

Python代码

class Solution:
    def divide(self, a: int, b: int) -> int:
        Int_MAX = 2**31 - 1
        if b == 0:
            return Int_MAX

        neg = a > 0 and b < 0 or a < 0 and b > 0
        a, b = abs(a), abs(b)
        ans, shift = 0, 31
        while shift >= 0:
            if a >= b << shift:
                a -= b<<shift
                ans += 1<<shift
            shift -= 1

        if neg:
            ans = -ans

        if ans > Int_MAX:
            return Int_MAX

        return ans
        

相关文章

网友评论

      本文标题:剑指 Offer II 001. 整数除法

      本文链接:https://www.haomeiwen.com/subject/txcfbltx.html