1. 首頁
  2. 面試

京東商城面試

京東商城面試

去得比較晚,沒相當宣講那麼快就結束了,然後又等試卷(試卷不夠)等了一段時間,最後大半都沒寫。

京東商城的筆試題真得很特別,沒有選擇,全部是填空,最後照例兩道程式設計題。

內容主要就是資料結構,還有大量的`概念題,這個.....反正我是寫不出來。

還有一個數據庫例項,寫一些增刪改查的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