鏈家筆試(2018-4-8)

weixin_33670713發表於2018-04-09

演算法崗位,選擇題(不同崗位,題目不一樣)+程式設計題(都一樣),特此記錄,歡迎補充糾正

1.關於遷移學習說法正確的是
A.傳統的學習演算法假定訓練和檢驗資料都從相同的分佈和特徵空間抽取,遷移學習允許分佈。。
B.遷移學習演算法再為新的目標任務構建分類器時,使用源任務的知識。分類器的構建需要。。
C.負遷移是遷移學習的難題
D.遷移學習旨在從一個或多個源任務提取知識,並將這種知識用於目標任務。

2.SVM的說法錯誤的是(A)
A. SVM邊界距離越大,分類錯誤的可能性越高
B .對於線性不可分的二分類問題,可以將資料投影到高維空間
C.使用核方法可以合理的利用非線性轉化吧資料轉到高緯度去,解決計算內積時導致的演算法複雜度高的問題
D.SVM超平面的邊際距離代表超平面到兩側最近點的距離。

3.多表聯接查詢的時候,為了提高查詢的相應時間,以下方法存在問題的是:(C)
A.在各個表中建立一個索引檢視
B 建立一個自定義,該函式返回表中的資料
C 建立一個儲存過程,該儲存過程從表中返回資料
D 建立一個表量使用者自定義函式,該函式返回表中的資料

4.下列那些演算法不是基於規則的分類器:(B,C)
A. SVM
B. ANN
C. KNN
D. C4.5

5.設A為三階實陣,若對於任一三維列向量,都有X^TAX=0,則(C)
A.|A|>0
B.|A|<0
C.|A|=0
D.其他都不對

6.原型的開發環境的題目
5544356-1c2116ca64a55508.png

7.除了上面的題目,還有

  • 大頂堆插入一個數字後,重新排序的題目。
  • 堆的插入
    向堆中插入一個元素時,首先將該元素寫入到堆尾,即堆中最後一個元素的後面,然後經調整為一個新堆。因為在原有堆上插入一個新元素後,可能使以該元素的雙親結點為根的子樹不為堆,從而使整個樹不為堆,所以必須進行調整使之仍為一個堆。調整的方法如下,若新元素大於雙親結點的值,就讓它們互換位置。新元素換到雙親位置後,使得以該位置為根的子樹成為堆,但新元素可能還大於此位置的雙親結點的值,從而使以上一層的雙親結點為根的子樹不為堆,還需要按上述方法繼續調整。這樣持續傳遞上去,直到以新位置的雙親結點為根的子樹仍為一個堆或者調整到堆頂為止,此時得到的整個樹又成為了一個堆。
  • 堆的刪除
    堆中每次都只能刪除堆頂元素。為了便於重建堆,實際的操作是將最後一個資料的值賦給根結點,然後再從根結點開始進行一次從上向下的調整。調整時先在左右子結點中找最小的,如果父結點比這個最小的子結點還小說明不需要調整了,反之將父結點和它交換後再考慮後面的結點。相當於根結點資料的“下沉”過程。
  • 堆的建立
    從無序序列建堆的過程就是一個反覆調整的過程。若將此序列看成是一個完全二叉樹,則最後一個非終端結點是第(n-2)/2個結點,由此調整過程只需從該結點開始,直到堆頂元素。
  • 正規式(編譯原理裡面):((a|b)|(aa))b與(a|b)*b的關係
  • 文法(GCE)
    E→E+T|E-T|T
    T→T*F|T/F|F
    F→|E|/I(記不清了)

相關文章