主题:【纪事】失败的苹果面试(上) -- landlord
共:💬133 🌺776
明白了这点,你应该知道怎么对待她了。
不过苹果怎么会有这样的面试官……
中学数学,这样的排列组合总共有2^n(杨辉三角的第n+1行)。
所以i从1循环到2^n。对二进制数i,每一位为1则加上,为0则不加。
for(i=1;i<=2^n;i++)
{
sum=0;
for(j=0;j<n;j++)
{
if((i>>j)&0x01)
sum+=set[j];
}
if(sum==N)
return TRUE;
}
return FALSE;
上大学后才来河里逛,不想许多人走了
复 胡言乱语一番
复 有没有这样的人
但你的薪水有些低。才6万,也就$30/hr。这也就勉强是IT Consultant的入门水平吧。
复 有啊。
我当时想找的是中国人,抱歉不是外国公民。我上司的补贴就7000美元因为他是美国人。
现在已经早就找到了,是一个要去淘宝的临时做了下。
记得我们初学编程的时候,各位同学都在力求找到最优算法,写出最精简的代码,结果就导致有时候很难读懂。后来才渐渐意识到写代码还是简单质朴为好。所谓“重剑无锋,大巧不工”:-)
上面这段代码,我大概会这样写:
int fib(int n)
{
assert(n>0);
int a1=1, a2=1, a3;
if (n == 1) return a1;
if (n == 2) return a2;
for (int i = 3; i <= n; i++)
{
a3=a1+a2;
a1=a2; a2=a3;
}
return a3;
}
编译出的机器代码应该是一样的,但是人读起来就更容易了。数列中相邻3个值的关系表达得很清楚。