去得比较晚,没相当宣讲那么快就结束了,然后又等试卷(试卷不够)等了一段时间,最后大半都没写。
京东商城的笔试题真得很特别,没有选择,全部是填空,最后照例两道编程题。
内容主要就是数据结构,还有大量的概念题,这个.....反正我是写不出来。
还有一个数据库实例,写一些增删改查的SQL语句,没什么难度。
两道逻辑题,悲催的不会,
一个是12个小球,其中一个重量不同,用天平称三次,把它找出来;
一个是飞机加油问题,很老的问题,一个飞机可以飞半个地球,飞机间可以互相加油,求让一个飞机飞整个地球最少要出动多少架飞机;
有兴趣的同学可以想一下,当然网上已经有现成的答案了。
最后两个编程题现在看起来不算太难,但当时就是写不出来,可能我实在是不适应现场手写代码吧,回来后很快就写出来了,放出来给大家看看。
1.求一个数组里面最大的K个数。
public class FindBigK {
public static void main(String[] args) {
int[] array=new int[]{1,5,-1,8,0,2}};//示例数组
int k=3;//设K=3
int [] out=findK(array,k);
for(int i=0;i<out.length;i++){< p="">
System.out.println(out[i]);
}
}
static int[] findK(int[] array,int k){
int temp=0;
int charge=0;
int[] out=new int[k];
for(charge=0;charge<k;charge++){< p="">
int mark=charge;
int big=array[charge];
for(int i=charge+1;i<array.length;i++){< p="">
if(big<array[i]){< p="">
big=array[i];
mark=i;
}
}
temp=array[charge];
array[charge]=array[mark];
array[mark]=temp;
out[charge]=array[charge];
}
return out;
}
}
求得为8 5 2
2.求一个数组中相加的值最大的连续序列
public class FindBigArray {
public static void main(String[] args) {
int[] array=new int[]{-2,9,-3,4,-6,7,-6,4};//示例数组
int sum=0;
int start=0;
int end=1;
int newstart=0;
int big=0;
for(int i=0;i<array.length;i++){< p="">
sum+=array[i];
if(sum<=0){
sum=0;
newstart=i+1;
}else{
if(sum>big){
big=sum;
start=newstart;
end=i+1;
}
}
}
for(int i=start;i<end;i++){< p="">
System.out.println(array[i]);
}
}
}
求得序列为 9 -3 4 -6 7
[京东商城面试]