同学们,LX3 vs NEX5 vs D7000# PhotoGear - 摄影器材
a*e
1 楼
Divide two integers without using multiplication, division and mod operator.
If it is overflow, return MAX_INT.
这个Ccp150上那种做法(也就是我一开始做的直接减的方法会TLE)
是不是说明现在面试要求比以前高很多?
还在试图在原来的code上面改变以加快
class Solution {
public:
int divide(int dividend, int divisor) {
if (divisor==0) return INT_MAX;
int r=0;
if (dividend==0) return r;
int flag=sign(dividend)*sign(divisor);
dividend=abs(dividend);
divisor=abs(divisor);
dividend=dividend-divisor;
while(dividend>=0)
{
r++;
dividend=dividend-divisor;
}
return flag>0?r:-r;
}
int sign(int num)
{
if (num>0)
return 1;
else if (num<0)
return -1;
else
return 0;
}
};
If it is overflow, return MAX_INT.
这个Ccp150上那种做法(也就是我一开始做的直接减的方法会TLE)
是不是说明现在面试要求比以前高很多?
还在试图在原来的code上面改变以加快
class Solution {
public:
int divide(int dividend, int divisor) {
if (divisor==0) return INT_MAX;
int r=0;
if (dividend==0) return r;
int flag=sign(dividend)*sign(divisor);
dividend=abs(dividend);
divisor=abs(divisor);
dividend=dividend-divisor;
while(dividend>=0)
{
r++;
dividend=dividend-divisor;
}
return flag>0?r:-r;
}
int sign(int num)
{
if (num>0)
return 1;
else if (num<0)
return -1;
else
return 0;
}
};