- 首先我要在纸上,非常非常聪明且迅速且机灵,
- 给出几个用例,找出边界用例和特殊用例,确定特判条件;在编码前考虑到所有的条件
- 向面试官提问:问题规模,特殊用例
- 给出函数头
- 暴力解,简述,优化。
- 给出能够想到的最优价
- 伪代码,同时结合用例
- 真实代码
/*
Reverse Integer
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
*/
/*
0
-1
1
123456
-6754754
-66666667
*/
int rev(int n)
{
if(n<10 && n>-10) return n;
bool sign = (n>=0);
if(!sign) n=-n;
int ans = 0;
int r = -1;
do{
r = n%10;
n /= 10;
ans *= 10;
ans += r;
}while(n!=0);
return sign ? ans : -ans;
}