publicclassSolution{/** * @paramdividend the dividend * @paramdivisor the divisor * @return the result*/publicintdivide(intdividend,intdivisor){ // Write your code hereif(dividend ==0)return0;if(divisor ==1)return dividend;boolean negative =((dividend <0&& divisor >0)||(dividend >0&& divisor <0));long dvd =Math.abs((long)dividend), dvs =Math.abs((long)divisor);long res =0;while(dvd >= dvs){int p =0, r =31;while(p +1< r){int q = p +(r - p)/2;if((dvs << q)<= dvd) p = q;else r = q;}int n =0;if((dvs << r)<= dvd) n = r;else n = p; dvd -= dvs << n; res +=1<< n;}if(res ==Integer.MIN_VALUE) res =Integer.MAX_VALUE;return negative ?-(int)res :(int)res;}}