我的第一次面試經歷
其實只是面試前的一次筆試,30分鐘時間。我那時比較緊張,因為這次的成績對于能否進去是非常關鍵的。我初看一下感覺很簡單,關于專業知識只有4道題目。第1道找錯,錯的太明顯了以至于我懷疑是題目有問題。第2道是Vector和ArrayList的區別,仔細看過thinking in java中的集合框架的話很好回答的。第3道考了一道不超過15個字母的SQL語句-_-!。第4道是一道算法題,很郁悶~~這道估計浪費了我15-20分鐘左右,而且還沒做對。其他題目就諸如你爸貴姓?你媽貴姓?之類的無聊問題。那道算法題是打印:










當時我是這樣寫的:
for(int x=0;x<26;x++)
{
for(int y=x;y<26;y++)
{
char ch=65;
System.out.print(""+(ch+x));
if(y>x){
continue;
}
}
System.out.println ("\n");
}
{
for(int y=x;y<26;y++)
{
char ch=65;
System.out.print(""+(ch+x));
if(y>x){
continue;
}
}
System.out.println ("\n");
}
不過還是整理了下思路,想了2種算法,不過還是下面的效率比較高。
for(int x=0;x<26;x++)
{
for(int y=x;y<x+x+1;y++)
{
char ch=65;
System.out.print(""+(char)(ch+x));
}
System.out.println ("\n");
}
{
for(int y=x;y<x+x+1;y++)
{
char ch=65;
System.out.print(""+(char)(ch+x));
}
System.out.println ("\n");
}
這讓我不禁想起了很久以前老師給我做一道猜數字游戲,要求是把猜過的數字排除掉。首先我確定肯定是放在數組里,我就用ArrayList把它實現了。后來老師說能不能優化一下,為此我又翻閱了thinking in java集合那章。決定用鏈表LinkedList實現,鏈表在增加刪除之類的操作時效率是最高的。本想在老師邊上狂炫耀一番,不過當老師說出它的算法時,我才覺得“孫悟空”和“如來”的差距不是一點點。很遺憾代碼在學校,我又懶得寫。就詳細說下步驟把:
1.如果是猜10以內的數字,那么申明一個10個int值的數組int[] num={1,2,3,4,5....10};
2.如果隨機數是5,我猜的是3的話;我就將num[2]=num[9],然后int[] num就={1,2,10,4,5....10}了。
3.第i次猜的話,我們排除num數組最后i項元素,然后直到猜對跳出。
這次筆試我很不滿意,估計考官已經把我CUT掉了5555555555。老實說我根本沒想到要筆試,連筆還是旁邊兄弟借的...我寫下來,就是提醒大家面試的時候憂著點,別光顧著學習J2EE框架而忽略了基礎中的基礎。
posted on 2005-08-20 21:11 瘋流成性 閱讀(748) 評論(3) 編輯 收藏 所屬分類: 程序人生