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(log2N)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++;...