LeetCode 29. Divide Two Integers
Posted Travelller
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 29. Divide Two Integers相关的知识,希望对你有一定的参考价值。
单纯减法不行,需要用到位运算。
a<<b表示 a*(2^b).
LeetCode出现了令人惊恐的同一段代码不同运行时间的情况.....
class Solution { public: int divide(int x, int y) { int ans=0; if (x==INT_MIN && y==-1) return INT_MAX; long a=abs((long)x),b=abs((long)y); while(a>=b) { long m=1; long t=b; while((t<<1) <a){ m<<=1;t<<=1; } a-=t;ans+=m; } if ((long)x*(long)y>0) return ans; else return -ans; } };
以上是关于LeetCode 29. Divide Two Integers的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 29. Divide Two Integers
Leetcode 29. Divide Two Integers
[LeetCode] 29. Divide Two Integers
LeetCode-29-Divide Two Integers