29.Divide Two Integers

https://leetcode.com/problems/divide-two-integers/discuss/13407/Detailed-Explained-8ms-C++-solution

1-

class Solution {
    public int divide(int dividend, int divisor) {
        if(divisor == 0 || (dividend == Integer.MIN_VALUE && divisor == -1))
            return Integer.MAX_VALUE;
        int res = 0;
        int sign = (dividend < 0) ^ (divisor < 0) ? -1 : 1;
        long dvd = Math.abs((long) dividend);
        long dvs = Math.abs((long) divisor);
        while(dvs <= dvd){
            long tmp = dvs;
            long mul = 1L;
            while(dvd >= (tmp << 1)){
                tmp <<= 1;
                mul <<= 1;
            }
            dvd -= tmp;
            res += mul;
        }
        return sign == 1 ? res : -res;
    }
}

results matching ""

    No results matching ""