美文网首页
[LeetCode]29、两数相除

[LeetCode]29、两数相除

作者: 河海中最菜 | 来源:发表于2019-07-28 08:45 被阅读0次

题目描述

给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。

返回被除数 dividend 除以除数 divisor 得到的商。

示例 1:

输入: dividend = 10, divisor = 3
输出: 3
示例 2:

输入: dividend = 7, divisor = -3
输出: -2
说明:

被除数和除数均为 32 位有符号整数。
除数不为 0。
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。本题中,如果除法结果溢出,则返回 231 − 1。

思路解析

非常简单的思路就是除数-被除数的次数,有多少就是多少
但是会出现一个问题,就是被除数很小,除数很大,时间复杂过高,利用位运算加速。
被除数每次翻倍,结果也翻倍
当不能翻倍的时候,回归开始,重复计算

class Solution:

    def divide(self, a, b):
        '''
        正负号
        越界
        =0
        :param a:
        :param b:
        :return:
        '''
        sign = 1 if a ^ b >= 0 else -1
        a = abs(a)
        b = abs(b)
        if b == 0 or a < b:
            return 0
        res = 0
        while a >= b:
            temp, add = b, 1
            while a >= temp:
                a -= temp
                res += add
                add <<= 1
                temp <<= 1
        res *= sign

        if res > 2 ** 31 - 1:
            return 2 ** 31 - 1
        if res < -2 ** 31:
            return -2 ** 31
        return res
AC29

相关文章

  • LeetCode-29-两数相除

    LeetCode-29-两数相除 题目 给定两个整数,被除数 dividend 和除数 divisor。将两数相除...

  • LeetCode 29. 两数相除

    29. 两数相除 题目来源:https://leetcode-cn.com/problems/divide-two...

  • 29. 两数相除

    29. 两数相除 题目链接:https://leetcode-cn.com/problems/divide-two...

  • [leetcode] 29 两数相除

    leetcode 29 link Given two integers dividend and divisor,...

  • LeetCode 29——两数相除

    1. 题目 2. 解答 2.1. 方法一 题目要求不能使用乘法、除法和除余运算,但我们可以将除法转移到对数域。 这...

  • [LeetCode]29、两数相除

    题目描述 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mo...

  • Leetcode 29 两数相除

    给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符...

  • leetcode 29 - 两数相除

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/divide...

  • LeetCode - #29 两数相除

    前言 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。微博:@故胤...

  • 每天进步一点点【2019.8.23】

    一、两数相除【leetcode 29】 题目描述:给定两个整数,被除数 dividend 和除数 divisor。...

网友评论

      本文标题:[LeetCode]29、两数相除

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