博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode-29. Divide Two Integers
阅读量:6593 次
发布时间:2019-06-24

本文共 1830 字,大约阅读时间需要 6 分钟。

题目解析:
用加减法实现除法用减法,每次累加被减部分,累加商, 以一个固定的倍数递增
坑: 注意 while循环的跳出便捷,= 的情况要注意。
应用:累加思想,可以用在提速上,效率提高
"""Given two integers dividend and divisor, divide two integers without using multiplication, division and mod operator.Return the quotient after dividing dividend by divisor.The integer division should truncate toward zero.Example 1:Input: dividend = 10, divisor = 3Output: 3Example 2:Input: dividend = 7, divisor = -3Output: -2Note:    Both dividend and divisor will be 32-bit signed integers.    The divisor will never be 0.    Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,  231 − 1]. For the purpose of this problem, assume that your function returns 231 − 1 when the division result overflows."""import timeimport mathclass Solution:    def divide(self, dividend, divisor):        """        :type dividend: int        :type divisor: int        :rtype: int        """        sign=(dividend>0)^(divisor>0)  #如果 ==1,则是 负的 ==0,则是正的        dividend_current=int(math.fabs(dividend))        divisor_current=int(math.fabs(divisor))        quotient=0        quotient_base=1        while dividend_current>0:            print(dividend_current,divisor_current,quotient)            while dividend_current>=divisor_current:                quotient+=quotient_base                dividend_current-=divisor_current                divisor_current*=2   #                quotient_base*=2                # time.sleep(1)            while divisor<=dividend_current
= 2 ** 31: return 2 ** 31 - 1 elif ans <= -2 ** 31 - 1: return -2 ** 31 else: return ansif __name__=='__main__': st=Solution() dividend=128 dividend=-2147483648 divisor=1 # out=st.divide(-128,3) out=st.divide(dividend,divisor) print(out)

转载地址:http://qmcio.baihongyu.com/

你可能感兴趣的文章
ERP计划参数如何在线更新
查看>>
LVS+Keepalived实现高可用集群
查看>>
我的友情链接
查看>>
unbantu安装 mysql --- 百度云
查看>>
sql2008性能计数器注册表配置单元一致性失败
查看>>
LNMP环境搭建
查看>>
我的友情链接
查看>>
学习linux—— 磁盘相关指令
查看>>
词法分析与语法分析简介
查看>>
JS中的默认行为
查看>>
我的友情链接
查看>>
Checkio代码闯关小计
查看>>
从oracle到mysql,主从到分库,一个普通项目数据库架构的变迁
查看>>
从零开始学wordpress 之四
查看>>
[LeetCode] Course Schedule
查看>>
selenium层级定位及鼠标键盘操作
查看>>
SpringBoot跨域问题解决方案
查看>>
(转载)hibernate3.0配置文件模板
查看>>
46、练习:输出指定目录下的所有文件名称
查看>>
IP地址与数字地址相互转换
查看>>