【Leetcode】29. Divide Two Integers

1 不能用除法,乘法和取余,那就只剩加减法,可以使用while循环每次做减法,但这样,当被除数很大,除数很小的时候,就会出现超时

2 除了加减乘除取余,还有就是移位操作

3 min(max(-2147483648, res), 2147483647) 是为了防止res overflow

4 2147483647是2**31-1,因为题意说了是在这个范围

5 这里有两层while循环,内层循环使用位移操作,可以加快找到商的速度,但是当位移数太大的时候,不足以做细小的减法,所以还需要外层while循环来做补充

6 在最开始的时候,我们需要判断dividend和divisor

7 positive =  (dividend<0) is (divisor<0) 这句code作用是:如果is两端都为True的话,positive就是True;如果is两端都是False的话,positive也是True;两个一个为正,一个为负的话,positive就是False

8 a << 1 is equal to a * 2


最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容