1. 程式人生 > >依圖科技暑期實習生面試經驗

依圖科技暑期實習生面試經驗

本人面的是演算法工程師-暑期實習崗位,只對自己的專案比較瞭解,對演算法、資料結構、現場程式設計、邏輯題等準備方面很欠缺。現在將面經分享出來,一是為了自己記錄,二也是希望能幫到需要的人吧。

前提:還未出結果,不知能否被接受

共三輪面試

第一輪:專案瞭解(約20min)+現場寫程式碼(約30min)+一個問題(約20min)

1.     一個很隨和的看起來像是程式設計師的人,進來後先讓我自我介紹,再聽我介紹了下專案,詢問了一點細節。

2.     現場寫程式碼的題:蛇形矩陣的生成,輸入一個數字N,比如為4,現場手寫程式碼生成下面矩陣:

1

2

6

7

3

5

8

13

4

9

12

14

10

11

15

16

(我想的是先把對角線寫了,再寫上半部分和下半部分,兩半部分方法是一致的,一個從小到大一個從大到小。寫上半部分的時候用到了遞迴,但是我遞迴在具體實現的時候因為自己練習得太少,遞迴實現部分有錯誤。這個可以通過刷遞迴的題目來熟悉套路,從而解決)

3.     針對一個測試集,有A/B兩個模型,分別能生成prediction後的矩陣。先令模型C為A和B的線性組合,C=x*A+y*B,怎樣確定x,y的係數,能讓C對這個測試集的accuracy最大?

(這個題我想的是給A的weight為w1,B就是1-w1,讓w1從0到1,以很小的步長遍歷,找出accuracy最大的w1。但後來我和麵試官討論了很久這個怎麼確定最小步長以及怎麼確定找到的這個離散的w1值就是精確x附近的近似值,覺得後面的討論有點類似於數學分析裡面極小值部分的證明題了,後來沒說清楚)

第二輪:專案詳細瞭解(約40min)+邏輯題(約35min)

1.     問得非常詳細。可能是因為我的專案比較對口,問得很細緻,我基本上將我整個專案的所有東西都說了。大致有以下問題:

1)  專案中認為難度最高的是哪些部分,最花時間的是什麼部分

2)  介紹所用資料集

3)  看過什麼論文,介紹印象深刻的論文。比如我講的是densenet的論文,在介紹的時候我提到1*1的卷積核,被問到1*1卷積核有什麼作用

4)  有沒有做過error case的分析

5)  你的每一個步驟的方法改進都具體有多大程度的提升

6)  調整網路具體都怎麼調了,調什麼引數了

2.     邏輯題(提前不準備的話真的是很難做,不過我覺得如果你現場做出來,推理過程流暢的話,也能證明你的學習能力強?瞎猜的)

題目:5個海盜分金幣的問題。先抽籤決定好五個人的提出分金幣方案順序,接下來第一個人提出自己方案,全體活著的人投票,反對票大於支援票時,提出方案者被殺;之前抽籤決定的第二個人再提方案,活著的人再投票,同樣規則決定提方案者會不會被殺;以此類推。問:第一個人提出怎樣的方案,才能保證自己不被殺?前提條件:每個海盜理性地遵循兩個原則:

1)  選擇自己分得金幣數最多的方法

2)  如果兩個方案中自己分得的金幣數一樣多,就更傾向於殺人數最多的方案

(面試官會看你表現來適當給出點提示,不過我剛開始沒審清楚題意,後來面試時間也很久了腦子有點累都有點不想做了,不過看面試官還是沒有放棄的意思,只能繼續做下去,全程非常長)

3.     面試者向面試官提出一個問題

第三輪:hr面(約15min)

很輕鬆,詢問了以下工作地點意願,實習時間,以及可以向hr提出一個問題