专栏首页Petrichor的专栏leetcode: 29. Divide Two Integers [✗]

leetcode: 29. Divide Two Integers [✗]

Problem

# Time:  O(logn) = O(1)
# Space: O(1)
# 
# Divide two integers without using multiplication, division and mod operator.

AC

class Solution():
    def divide(self, dividend, divisor):
        positive = (dividend < 0) is (divisor < 0)
        dividend, divisor = abs(dividend), abs(divisor)
        res = 0
        while dividend >= divisor:
            temp, i = divisor, 1
            while dividend >= temp:
                dividend -= temp
                res += i
                i <<= 1
                temp <<= 1
        if not positive:
            res = -res
        return min(max(-2**31, res), 2**31-1)


if __name__ == "__main__":
    assert Solution().divide(123, 12) == 10
    assert Solution().divide(123, -12) == -10
    assert Solution().divide(-123, 12) == -10
    assert Solution().divide(-123, -12) == 10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【leetcode】背包问题

    完全背包的特点恰是每种物品可选无限件,所以就可以并且必须采用 w = W[i]…carry 的顺序循环:

    JNingWei
  • ubuntu: 查看CPU信息

    JNingWei
  • leetcode: 78. Subsets

    JNingWei
  • Python接口自动化-requests模块之get请求

    Requests是Python语言的第三方的库,专门用于发送HTTP请求。在Python语言中,虽然提供了urllib2和urllib的库,但是相比较而言,Re...

    ITester软件测试小栈
  • 12月2日腾讯云AMD服务器拼团上车

    12月2日最新上车:https://cloud.tencent.com/act/group/amd/detail?s_url=https%25253A%2525...

    用户1266362
  • Django数据库查询优化与AJAX

    每一列属性都是不可再分的,两列的属性相近或相似或一样,应尽量合并属性一样的列,确保不产生冗余数据。

    GH
  • Swift教程(四)--集合类型

    Swift 提供了三种主要的集合类型(collection types),所谓的数组(arrays)、集合(sets)还有字典(dictionaries),用来...

    roc
  • Express 极速掌握

    支持 callback1,callback2、[callback1, callback2]、function callback(req, res, next) ...

    mafeifan
  • 熊市将尽,如何入场?

    1. 隐形阶段。这是资产投资机会初现的时期,只有早期少数投资者会意识到机会的存在,并参与其中。

    区块链领域
  • 取代云计算?开创性的技术:边缘计算和雾计算

    如今,从虚拟化服务的日益普及到云计算服务平台的广泛采用,IT运营正在进行重大改革。而在网络边缘处理数据是在使用物联网设备时提高应用效率的最佳方法之一。

    用户6543014

扫码关注云+社区

领取腾讯云代金券