辣条走起,原创不易~
创新工厂/涂鸦移动,李开复创办的
我没有走提前批,走的秋招,笔试是对方给我发一份邮件,里面有一份word文档,然后里面有两道编程题,需要这份word文档的后台回复 创新工厂
题目一
题目一解答
int number_of_cards(float length)
{
if(length <= 0)
return 0;
float i = (float)1.0;
float sum = (float)(1.0 / (i+1));
while(sum < length)
{
i++;//就是上面标注字体的实现,每次都加1/(i+1),题目已经给出公式
sum = sum + (float)(1.0/(i+1));
}
return (int)i;
}
题目二
题目二解答
int beauty_of_array(int[] array)
{
int sum = 0;
int length = array.length;
for(int i=1;i<=length;i++)//i代表子序列的长度从1开始最长是数组的长度
{
for(int j=0;j<array.length;j++)
{//j代表从数组的第几个数开始找i长度个数,穷举
Set<Integer> set = new HashSet<>();
int temp = j+i-1;//temp用来记录从j下标开始,到i长度后的下标为止,比如i取2,也就是子序列长度是2,那么temp就是j+2-1
if(temp >= array.length)
break;//如果下标超过数组长度,break掉
for(int k=j;k<=temp;k++)
set.add(array[k]);//由于是不重复的,加入集合
Iterator<Integer> iterator = set.iterator();
while (iterator.hasNext())//遍历集合求和
sum += (int)iterator.next();
}
}
return sum;
}
电话面试,时长半个小时,全程没问任何项目,一直在问基础知识点。
public
static Integer valueOf(int i)
{
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return
new Integer(i);
}
有一些问题忘了,大体上问的问题都很基础。
电话面试,时长半小时,感觉创新工厂很卡时间,时间一到,立马结束面试。面试官让我准备好纸和笔,然后问了我两道动态规划的题目。
import java.util.*;
public
class
Solution {
public
int
FindGreatestSumOfSubArray(int[] array)
{
if(array.length <= 0)
return
-1;
int realMax = array[0];
int currentMax = 0;
for(int i=0;i<array.length;i++)
{
if(currentMax + array[i] >= array[i])
{
currentMax += array[i];
}else{
currentMax = array[i];
}
if(currentMax > realMax)
realMax = currentMax;
}
return realMax;
}
}
由于这个时间太久远了,这道题目具体是啥,实在想不起来了,只记得当时我强行套状态方程,把思路说了一下,然后面试官最后给我讲了一下这道题的思路,最后面试就结束了。
印象中没有hr面,二面结束然后过了一天通知我面试通过了,然后发了offer,当时看到创新工厂开的offer,还是很吃惊的,感觉相对于其他互联网公司真的有点少,具体薪资大家可以去offershow搜一下。