shlogg · Early preview
Prashant Mishra @prashantrmishra

Divide Two Integers In O(1) Time Complexity

Divide two integers with O(log2N) time complexity using bitwise operations and handle edge cases for signed numbers.

Problem
Tc : 

  (log2N)2(log_2N) ^ 2(log2​N)2

Sc: O(1)

class Solution {
    public int divide(int dividend, int divisor) {
        //edges cases
        if(dividend == divisor) return 1;
        boolean positive = true;
        if(dividend <=0 && divisor >0) positive = false;
        else if(dividend >=0 && divisor <0) positive = false;
        long n = dividend;
        long d = divisor;
        n = Math.abs(n);
        d = Math.abs(d);
        long quotient = 0;
         while (n >= d) {
            int count = 0;
            while (n >= (d << (count + 1))) {
                count++;...