[Leetcode]Divide Two Integers

原创 2015年11月19日 15:11:26

Divide two integers without using multiplication, division and mod operator.

If it is overflow, return MAX_INT.


class Solution {
public:
    /*algorithm binary search 
    */
    int bSearch(long d1,long d2){
        long l = 1,h = d1;
        while(l <= h){
            long m = (l+h)>>1;
            long d = d1 - m*d2;
            if(0 <= d && d < d2){
                return m;
            }else if(d >= d2){
                l = m+1;
            }else{
                h = m-1;
            }
        }
    }
    int divide(int dividend, int divisor) {
        long d1 = labs(dividend),d2 = labs(divisor);//use labs,instead of abs,or -
        bool neg = (dividend^divisor)>>sizeof(int)*8-1;//d1<0&&d2 >0 || d1>0||d2<0
        if(d1 == 0 || d1 < d2)return 0;
        if(d2 == 1 && d1 > INT_MAX)return neg?-d1:INT_MAX;
        long count=bSearch(d1,d2);
        return neg?-count:count;
    }
};


LeetCode 29 Divide Two Integers (C,C++,Java,Python)

Problem: Divide two integers without using multiplication, division and mod operator. If it ...
  • runningtortoises
  • runningtortoises
  • 2015年05月13日 09:27
  • 1812

Divide Two Integers -- LeetCode

原题链接: http://oj.leetcode.com/problems/divide-two-integers/  这道题属于数值处理的题目,对于整数处理的问题,在Reverse Integer...
  • linhuanmars
  • linhuanmars
  • 2014年02月27日 05:41
  • 26790

LeetCode --- 29. Divide Two Integers

题目链接:Divide Two Integers Divide two integers without using multiplication, division and mod operato...
  • makuiyu
  • makuiyu
  • 2015年02月02日 21:58
  • 1056

LeetCode 29 Divide Two Integers 除法的原理

Divide Two Integers Divide two integers without using multiplication, division and mod operat...
  • gx262091291
  • gx262091291
  • 2015年08月22日 22:19
  • 1376

leetcode 29 -- Divide Two Integers

Divide Two Integers 感想: >这道题因为有一点小问题一直导致AC不过,一会我会先贴上自己的正确代码,之前错误的贴到后面。 >在一直解决不了遇到的问题时,我去网上搜了下别人做...
  • wwh578867817
  • wwh578867817
  • 2015年06月12日 17:23
  • 1722

LeetCode29DivideTwoIntegers--In Java

主要采用的方法是:先不断通过移位操作找到divisor最接近dividend的倍数,如被除数是100,除数是3的话,这个倍数就是32。 然后用100减去3的32倍,这里的32倍是通过左移产生,并没有用...
  • sinat_27564919
  • sinat_27564919
  • 2016年02月22日 20:24
  • 755

LeetCode(29)Divide Two Integers

题目内容 Divide two integers without using multiplication, division and mod operator. 题目分析 最容易的想到的办法,是把...
  • feliciafay
  • feliciafay
  • 2014年01月03日 07:24
  • 2570

[LeetCode29]Divide Two Integers

Divide two integers without using multiplication, division and mod operator. Analysis:
  • sbitswc
  • sbitswc
  • 2014年06月12日 01:32
  • 7281

leetcode——Divide Two Integers 不用乘除取余操作求除法(AC)

题目只有简单的一句话,看起来可真简单啊,呵呵,假象。这个题目的难点在于对时间效率的限制和边界值的测试。第一印象肯定是循环一个个把因子从被除数中减去不久行了么,可是对于比如INT_MAX/1或者INT_...
  • axiaochong
  • axiaochong
  • 2014年06月09日 20:19
  • 2296

(LeetCode) Divide Two Integers (Java)思路讲解及实现

本文将详细介绍Divide Two Integers 的解题思路及Java实现。 题目如下: Divide two integers without using multiplicatio...
  • yuqieshidi
  • yuqieshidi
  • 2015年09月30日 15:52
  • 794
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Leetcode]Divide Two Integers
举报原因:
原因补充:

(最多只允许输入30个字)