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;
}
}