最近,終於忙完了學校里的事,然后准備開始找實習,現在實習也找到了,那就說說我找工作的點點滴滴吧,希望對於初次來北京的小白可能會有些幫助吧
坐火車來的時候就感受到好多人來北京,我也第一次買了站票(雖然我也是提前一個星期買的票),在火車上和來北京的老鄉聊天,他們告訴我要做好碰壁的准備,因為北京競爭挺大的,當我跟他們說我投的簡歷有些職位是合適的,卻莫名奇妙的被標記為不合適,他們說是因為投的人太多了,一般投10份簡歷會有一個面試機會,我投了二十個簡歷有4個面試機會已經不錯了,唉,原來是這樣
生平第一次來北京,正好同學在北京實習,順便接我一下,但是我只有3,4天的時間去找工作(當然這幾天我主要用來面試的,以前早已投了簡歷,和公司已經約了面試),那幾天一般都是在外面跑着面試,在加上北京上班晚,一般中午都不能按時吃飯,但是還好有百度地圖,找起來也方便些。
第一天 天一星辰
九點我准時到的,前台讓我又重新填寫了一份簡歷,后來又等了一段時間,大約十點左右吧,給了我一份試題讓我做,其中涉及前端,加密算法,數據結構,linux操作,php,c語言,我肯定是不全會的,不過沒辦法,只能硬着頭皮去做,哪怕只有一點思路,尤其對於數據結構,不管怎么說考研就考的數據結構,對於算法的思想還是明白的,但是用c寫,早有些忘了,有些甚至是用漢字寫的,linux的題更是不會,前端的題還算簡單吧。
做完以后,人事把我帶到面試的房間,掃了一眼辦公環境,就是那種普通的格子間,還算可以,正好里面也坐着一個等面試的男生,跟他聊天才知道,他面試的java,我一看他手里拿着的試題,跟我的一樣,心想,這怎么能一樣呢,不同的崗位啊,我一看那個男生做的,還沒我寫的多呢,最起碼我還死馬當作活馬醫呢,他連醫都沒醫,這個男生有一年的工作經驗,比我這小白總該強些吧,其中有一個算法題是這樣的
i=1;
while(i<n)
{
i=i*2;
}
求這段代碼的時間復雜度
這個的復雜度應該是O(logn)
因為和那個男生討論了這個題所以對這個題印象深刻
結果一會人事說到飯點了,下午面試,我也就只能隨便吃了點,下午一點面試開始
面試官30多歲,微胖,看着很友善,問了一些簡歷上的問題,比如一周有多長時間實習呀,老師讓不讓出來實習呀,說一說簡歷上寫的項目經歷呀,以前在看別人寫面試經歷的時候說不要別人問一句你答一句,要有問有答,我對這一點還是比較注意的,我問他為什么不同的職位做一套題?他說:“基礎的都是一樣的”,另外他還問了一些試卷上的題
比如寫出一個算法用前序遍歷遍歷一棵二叉樹
思路分析:定義一個節點的結構體,其中包括它的值,它的左右節點的指針,然后利用遞歸去完成遍歷
struct BTreeNode{
int data;
Node* left;
Node*right;
};
void printBTree(struct BTreeNode *bt)
{
if(bt != NULL){
printf("%c", bt->data);
}
if(bt->left != NULL )
{
printBTree(bt->left);
}
if(bt->right != NULL)
{
printBTree(bt->right);
}
return;
}
2.對於一個有序數組查找其中的一個元素的位置,不能直接調用函數
我想到的是用折半查找,按着大概寫出來,卻忽略了索引的變動,應該是錯了,整理時發現必須把查找的起始位置作為參數,應該是下面的樣子了
function halfSearch(arr,num,low,high)
{
if(low<=high)
{
// js中/會得到小數 例如9/2=4.5
var mid=(low+high)/2;
var mid=parseInt(mid);
if(arr[mid]==num)
{
alert(mid) ;
}else if(arr[mid]>num)
{
halfSearch(arr,num,low,mid-1);
}
else
{
halfSearch(arr,num,mid+1,high);
}
}
return -1;
}
3.銀川有多少加油站?
其實這個問題我在程序員面試攻略這本書上見過,當時只是一掃沒在意,只是及得要考慮很多客觀因素,例如,銀川的面積,銀川的人口,平均幾個人有一輛車,等等,因為考慮到的因素太多,所以沒做出來,我覺得這種問題就是看一個人的思考方式吧,覺得有點刁難
4.有9個球一模一樣,其中有一個和其他八個的質量不一樣,給你一個天平,天平一次可以稱1個或者幾個,最差幾次能測出?
這個題當時忽略了球的輕重的重要條件,導致最后是五次,想來想去覺得應該是這樣的
將9個球分三組,標號為1組,2組,3組,1,2組比較最差是不相等,則2,3,比較,如果不等,則2組有問題,並且已經知道那個球是輕還是重,將2組中的三個球再次划分為1,2,3,稱一次即可找出那個質量不一樣的球,則最差3次找到(如果大家有好的方法,一起交流哈),最好2次找到
5. 有17個球,兩個人來拿,每次可以拿一個或者兩個,誰拿到最后一個球誰獲勝
這個題當時做的蒙蒙的,后來想了想應該是這樣,當有3個球的時候(這是規律的最小值),后拿的人肯定會贏,17/3=5 余2,則我先拿2個,剩下的我保持別人拿1個,我拿2個,別人拿1個,我拿2個,保證每一輪都拿走3個,那剩下的肯定也是3個,從而保證最后能贏
6.撲克牌游戲; 兩個人玩撲克,每人抽取三張,已知 A 的牌是 4,5,x B是6,7,y,求A勝B的概率是?(小王,大王分別用14,15代替) 用程序實現(略)
7求100以內的素數
想必這個問題在我們剛開始接觸C語言的時候就是常做的題
function prime()
{
console.time("計時器");
var arr = [];
for (var i = 1; i <= 100; i++) {
var flag = 1;
for (var j = 2; j <= Math.sqrt(i); j++) {//取平方可是增加運行速度
if (i % j == 0) {
flag = 0;
break;
}
}
if (flag == 1) {
arr.push(i);
}
}
document.write(arr);
console.timeEnd("計時器");
}
