Divide Two Integers LeetCode solution in C++
1class Solution {2public:3int divide(int dividend, int divisor) {4if (dividend == INT_MIN && divisor == -1) {5return INT_MAX;6}7long dvd = labs(dividend), dvs = labs(divisor), ans = 0;8int sign = dividend > 0 ^ divisor > 0 ? -1 : 1;9while (dvd >= dvs) {10long temp = dvs, m = 1;11while (temp << 1 <= dvd) {12temp <<= 1;13m <<= 1;14}15dvd -= temp;16ans += m;17}18return sign * ans;19}20};