演算法工程師面試題
㈠ 前端工程師面試做演算法題用什麼編程語言來做
那必然是javascript
㈡ 要面試演算法工程師,大神給點相關經驗啊
演算法是比較復雜又基礎的學科,每個學編程的人都會學習大量的演算法。而根據統計,以下這18個問題是面試中最容易遇到的,本文給出了一些基本答案,供演算法方向工程師或對此感興趣的程序員參考。
1)請簡單解釋演算法是什麼?
演算法是一個定義良好的計算過程,它將一些值作為輸入並產生相應的輸出值。簡單來說,它是將輸入轉換為輸出的一系列計算步驟。
2)解釋什麼是快速排序演算法?
快速排序演算法能夠快速排序列表或查詢。它基於分割交換排序的原則,這種類型的演算法佔用空間較小,它將待排序列表分為三個主要部分:
·小於Pivot的元素
·樞軸元素Pivot(選定的比較值)
·大於Pivot的元素
3)解釋演算法的時間復雜度?
演算法的時間復雜度表示程序運行完成所需的總時間,它通常用大O表示法來表示。
4)請問用於時間復雜度的符號類型是什麼?
用於時間復雜度的符號類型包括:
·Big Oh:它表示小於或等於目標多項式
·Big Omega:它表示大於或等於目標多項式
·Big Theta:它表示與目標多項式相等
·Little Oh:它表示小於目標多項式
·Little Omega:它表示大於目標多項式
5)解釋二分法檢索如何工作?
在二分法檢索中,我們先確定數組的中間位置,然後將要查找的值與數組中間位置的值進行比較,若小於數組中間值,則要查找的值應位於該中間值之前,依此類推,不斷縮小查找范圍,直至得到最終結果。
6)解釋是否可以使用二分法檢索鏈表?
由於隨機訪問在鏈表中是不可接受的,所以不可能到達O(1)時間的中間元素。因此,對於鏈表來說,二分法檢索是不可以的(對順序鏈表或排序後的鏈表是可以用的)。
7)解釋什麼是堆排序?
堆排序可以看成是選擇排序的改進,它可以定義為基於比較的排序演算法。它將其輸入劃分為未排序和排序的區域,通過不斷消除最小元素並將其移動到排序區域來收縮未排序區域。
8)說明什麼是Skip list?
Skip list數據結構化的方法,它允許演算法在符號表或字典中搜索、刪除和插入元素。在Skip list中,每個元素由一個節點表示。搜索函數返回與key相關的值的內容。插入操作將指定的鍵與新值相關聯,刪除操作可刪除指定的鍵。
9)解釋插入排序演算法的空間復雜度是多少?
插入排序是一種就地排序演算法,這意味著它不需要額外的或僅需要少量的存儲空間。對於插入排序,它只需要將單個列表元素存儲在初始數據的外側,從而使空間復雜度為O(1)。
10)解釋什麼是「哈希演算法」,它們用於什麼?
「哈希演算法」是一個哈希函數,它使用任意長度的字元串,並將其減少為唯一的固定長度字元串。它用於密碼有效性、消息和數據完整性以及許多其他加密系統。
11)解釋如何查找鏈表是否有循環?
要知道鏈表是否有循環,我們將採用兩個指針的方法。如果保留兩個指針,並且在處理兩個節點之後增加一個指針,並且在處理每個節點之後,遇到指針指向同一個節點的情況,這只有在鏈表有循環時才會發生。
12)解釋加密演算法的工作原理?
加密是將明文轉換為稱為「密文」的密碼格式的過程。要轉換文本,演算法使用一系列被稱為「鍵」的位來進行計算。密鑰越大,創建密文的潛在模式數越多。大多數加密演算法使用長度約為64到128位的固定輸入塊,而有些則使用流方法。
13)列出一些常用的加密演算法?
一些常用的加密演算法是:
·3-way
·Blowfish
·CAST
·CMEA
·GOST
·DES 和Triple DES
·IDEA
·LOKI等等
14)解釋一個演算法的最佳情況和最壞情況之間有什麼區別?
·最佳情況:演算法的最佳情況解釋為演算法執行最佳的數據排列。例如,我們進行二分法檢索,如果目標值位於正在搜索的數據中心,則這就是最佳情況,最佳情況時間復雜度為0。
·最差情況:給定演算法的最差輸入參考。例如快速排序,如果選擇關鍵值的子列表的最大或最小元素,則會導致最差情況出現,這將導致時間復雜度快速退化到O(n2)。
15)解釋什麼是基數排序演算法?
基數排序又稱「桶子法」,是通過比較數字將其分配到不同的「桶里」來排序元素的。它是線性排序演算法之一。
16)解釋什麼是遞歸演算法?
遞歸演算法是一個解決復雜問題的方法,將問題分解成較小的子問題,直到分解的足夠小,可以輕松解決問題為止。通常,它涉及一個調用自身的函數。
17)提到遞歸演算法的三個定律是什麼?
所有遞歸演算法必須遵循三個規律:
·遞歸演算法必須有一個基點
·遞歸演算法必須有一個趨向基點的狀態變化過程
·遞歸演算法必須自我調用
18)解釋什麼是冒泡排序演算法?
冒泡排序演算法也稱為下沉排序。在這種類型的排序中,要排序的列表的相鄰元素之間互相比較。如果它們按順序排列錯誤,將交換值並以正確的順序排列,直到最終結果「浮」出水面。
滿意記得採納哈
㈢ 阿里巴巴 演算法工程師 筆試主要考哪些方面
(一)參加全科(四科)考試條件: 1、工程技術或工程經濟專業大專(含大專)以上學歷,按照國家有關規定,取得工程技術或工程經濟專業中級職務,並任職滿3年。 2、按照國家有關規定,取得工程技術或工程經濟專業高級職務。 3、1970年(含1970年)以前工程技術或工程經濟專業中專畢業,按照國家有關規定,取得工程技術或工程經濟專業中級職務,並任職滿3年。 (二)免試部分科目的條件: 對從事工程建設監理工作並同時具備下列四項條件的報考人員,可免試《建設工程合同管理》和《建設工程質量、投資、進度控制》兩科。 1、1970年(含1970年)以前工程技術或工程經濟專業中專(含中專)以上畢業; 2、按照國家有關規定,取得工程技術或工程經濟專業高級職務; 3、從事工程設計或工程施工管理工作滿15年; 4、從事監理工作滿1年。 (三)報考條件中,從事相關專業工作年限的計算截止到2005年年底。 考試科目、考試成績管理 --返回頂部-- 考試科目:考試設4個科目,具體是:《建設工程監理基本理論與相關法規》、《建設工程合同管理》、《建設工程質量、投資、進度控制》、《建設工程監理案例分析》。其中,《建設工程監理案例分析》為主觀題,在試卷上作答;其餘3科均為客觀題,在答題卡上作答。 成績管理:參加全部4個科目考試的人員,必須在連續兩個考試年度內通過全部科目考試;符合免試部分科目考試的人員,必須在一個考試年度內通過規定的兩個科目的考試,方可取得監理工程師執業資格證書。
㈣ 計算機視覺演算法工程師筆試主要什麼內容
所謂的演算法,無非就是找漏洞,盡量減少一些人利用這些漏洞打破不正當的競爭。 現在的演算法很成熟了,不需要去開發新的東西。
㈤ 華為的演算法工程師面試大概會問哪些需要提前做哪些准備
准備常規演算法,離散知識,或者手撕代碼。我後台轉演算法,面試的時候就是這些,因面試官而異,僅供參考。
㈥ 軟體工程師面試時,HR都會問些什麼問題
軟體工程崗位面試大致可分為兩類:特定領域知識面試和計算機科學基礎知識面試
特定領域知識面試
特定領域知識面試通常涉及到你最熟悉的技術領域的具體知識點。例如,如果你主要使用Angular1.x進行前端開發,並且面試公司又有 Angular前端,那他們就可能問你關於 Angular控制器、指令和服務的相關內容。也就是說,你需要做好准備去建立、展示和討論Angular。
特定領域的面試重點關注的是你已經實際構建起來的東西,因此要想順利通過這些面試,最好是你已經構建過相關技術的項目。你應該為自己的工作而感到自豪,不必感覺不好意思,而應該深入探討具體項目的技術細節。項目最好是近階段完成的,沒人會願意去聽你去年寫的那些代碼,你自己也會對這種陳舊的項目感覺厭倦,面試效果也欠佳。
特定領域面試的另一個常見策略是看求職者能否構建一些非常棒的產品或者是排除實際存在的一些問題和故障。這通常是讓求職者帶回家去完成的一種測試,求職者一般有 24-48個小時的時間來完成這些測試。例如,如果你是一名 Laravel開發人員,並且你面試的公司恰好也使用 Laravel,那他們可能會要求你構建公司產品或者是公司定期創建的產品的微縮版本。對於這種帶回家做的測試,做好投入大量工作的心理准備。准備好啟動模板,不要抗拒去Google搜索答案,發送電子郵件尋求幫助和使用外部工具包這些做法。因為能否通過特定領域面試最重要的一個衡量標準是你能否構建出有效的產品。
計算機科學基礎知識面試
計算機科學和基礎編程面試明顯不同於上文所探討的特定領域面試。計算機科學和基礎編程面試是為了評估你解決問題的能力,更多的是關注找到最佳解決方案的能力,而不是簡單的去完成某些特定任務。因此,面試官通常也不會問關於你是誰、你過去的工作經歷或者你構建過的項目方面的問題。對於計算機科學基礎面試這一類型來說,面試官的工作就是評估你的原始編程能力,通常他們是通過數據結構和演算法相關的問題來進行評估。
計算機科學基礎面試的問題有章法可循。因為學習數據結構和演算法需要大量的准備工作和長時間的學習,你需要了解你所選擇的編程語言、數據結構和演算法來解決問題。計算機科學基礎知識面試通常可以用六種不同類型的演算法來解決:
深度優先搜索演算法/廣度優先搜索演算法
貪心演算法
滑動窗口演算法
分治演算法
遞歸演算法
動態規劃演算法
你需要研究每一種演算法,可以在 Pramp上與其他軟體工程師一起練習面試和面試問題。應對面試是一門獨立於軟體工程師之外的技能,你可以通過練習和重復來提升自己在面試時的表現。
計算機科學基礎知識面試通常遵循的那些問題結構對於求職者來說只有通過幾個小時的練習和准備才能發現。即便這些知識中的一部分並不適用於日常的編程任務,但只要你堅持這樣做,你就能抓住更多的面試機會,就能收到更多公司發來的 offer。如果你的目標是獲得更多的工作機會,那你一定要看一下《Cracking The Coding Interview》這本書,並且查看這一免費的面試資源來進行相應的准備工作。
㈦ 網路工程師面試題
網路工程師面試題 1: 交換機是如何轉發數據包的?
交換機通過學習數據幀中的源MAC地址生成交換機的MAC地址表,交換機查看數據幀的目標MAC地址,根據MAC地址表轉發數據,如果交換機在表中沒有找到匹配項,則向除接受到這個數據幀的埠以外的所有埠廣播這個數據幀。
2 簡述STP的作用及工作原理.
作用:(1) 能夠在邏輯上阻斷環路,生成樹形結構的拓撲;
(2) 能夠不斷的檢測網路的變化,當主要的線路出現故障斷開的時候,STP還能通過計算激活阻起到斷的埠,起到鏈路的備份作用。
工作原理: STP將一個環形網路生成無環拓樸的步驟:
選擇根網橋(Root Bridge)
選擇根埠(Root Ports)
選擇指定埠(Designated Ports)
生成樹機理
每個STP實例中有一個根網橋
每個非根網橋上都有一個根埠
每個網段有一個指定埠
非指定埠被阻塞 STP是交換網路的重點,考察是否理解.
3:簡述傳統的多層交換與基於CEF的多層交換的區別
簡單的說:傳統的多層交換:一次路由,多次交換
基於CEF的多層交換:無須路由,一直交換.
4:DHCP的作用是什麼,如何讓一個vlan中的DHCP伺服器為整個企業網路分配IP地址?
作用:動態主機配置協議,為客戶端動態分配IP地址.
配置DHCP中繼,也就是幫助地址.(因為DHCP是基於廣播的,vlan 或路由器隔離了廣播)
5:有一台交換機上的所有用戶都獲取不了IP地址,但手工配置後這台交換機上的同一vlan間的用戶之間能夠相互ping通,但ping不通外網,請說出排障思路.
1:如果其它交換機上的終端設備能夠獲取IP地址,看幫助地址是否配置正確;
2:此交換機與上連交換機間是否封裝為Trunk.
3:單臂路由實現vlan間路由的話看子介面是否配置正確,三層交換機實現vlan間路由的話看是否給vlan配置ip地址及配置是否正確.
4:再看此交換機跟上連交換機之間的級連線是否有問題;
排障思路.
6:什麼是靜態路由?什麼是動態路由?各自的特點是什麼?
靜態路由是由管理員在路由器中手動配置的固定路由,路由明確地指定了包到達目的地必須經過的路徑,除非網路管理員干預,否則靜態路由不會發生變化。靜態路由不能對網路的改變作出反應,所以一般說靜態路由用於網路規模不大、拓撲結構相對固定的網路。
靜態路由特點
1、它允許對路由的行為進行精確的控制;
2、減少了網路流量;
3、是單向的;
4、配置簡單。
動態路由是網路中的路由器之間相互通信,傳遞路由信息,利用收到的路由信息更新路由表的過程。是基於某種路由協議來實現的。常見的路由協議類型有:距離矢量路由協議(如RIP)和鏈路狀態路由協議(如 OSPF)。路由協議定義了路由器在與其它路由器通信時的一些規則。動態路由協議一般都有路由演算法。其路由選擇演算法的必要步驟
1、向其它路由器傳遞路由信息;
2、接收其它路由器的路由信息;
3、根據收到的路由信息計算出到每個目的網路的最優路徑,並由此生成路由選擇表;
4、根據網路拓撲的變化及時的做出反應,調整路由生成新的路由選擇表,同時把拓撲變化以路由信息的形式向其它路由器宣告。
動態路由適用於網路規模大、拓撲復雜的網路。
動態路由特點:
1、無需管理員手工維護,減輕了管理員的工作負擔。
2、佔用了網路帶寬。
3、在路由器上運行路由協議,使路由器可以自動根據網路拓樸結構的變化調整路由條目;
能否根據具體的環境選擇合適的路由協議
7:簡述有類與無類路由選擇協議的區別
有類路由協議:路由更新信息中不含有子網信息的協議,如RIPV1,IGRP
無類路由協議:路由更新信息中含有子網信息的協議,如OSPF,RIPV2,IS-IS,EIGRP 是否理解有類與無類
8:簡述RIP的防環機制
1.定義最大跳數 Maximum Hop Count (15跳)
2.水平分割 Split Horizon (默認所有介面開啟,除了Frame-Relay的物理介面,可用sh ip interface 查看開啟還是關閉)
3.毒化路由 Poizoned Route
4.毒性反轉 Poison Reverse (RIP基於UDP,UDP和IP都不可靠,不知道對方收到毒化路由沒有;類似於對毒化路由的Ack機制)
5.保持計時器 hold-down Timer (防止路由表頻繁翻動)
6.閃式更新 Flash Update
7.觸發更新 Triggered Update (需手工啟動,且兩邊都要開 Router (config-if)# ip rip triggered )
當啟用觸發更新後,RIP不再遵循30s的周期性更新時間,這也是與閃式更新的區別所在。
RIP的4個計時器:
更新計時器(update): 30 s
無效計時器(invalid): 180 s (180s沒收到更新,則置為possible down狀態)
保持計時器(holddown): 180s (真正起作用的只有60s)
刷新計時器(flush): 240s (240s沒收到更新,則刪除這條路由)
如果路由變成possible down後,這條路由跳數將變成16跳,標記為不可達;這時holddown計時器開始計時。
在holddown時間內即使收到更優的路由,不加入路由表;這樣做是為了防止路由頻繁翻動。
什麼時候啟用holddown計時器: 「當收到一條路由更新的跳數大於路由表中已記錄的該條路由的跳數」
9:簡述電路交換和分組交換的區別及應用場合. 電路交換連接
根據需要進行連接
每一次通信會話期間都要建立、保持,然後拆除
在電信運營商網路中建立起來的專用物理電路
分組交換連接
將傳輸的數據分組
多個網路設備共享實際的物理線路
使用虛電路/虛通道(Virtual Channel)傳輸
若要傳送的數據量很大,且其傳送時間遠大於呼叫時間,則採用電路交換較為合適;當端到端的通路有很多段的鏈路組成時,採用分組交換傳送數據較為合適。
10:簡述PPP協議的優點. 支持同步或非同步串列鏈路的傳輸
支持多種網路層協議
支持錯誤檢測
支持網路層的地址協商
支持用戶認證
允許進行數據壓縮
11: pap和chap認證的區別
PAP(口令驗證協議 Password Authentication Protocol)是一種簡單的明文驗證方式。NAS(網路接入伺服器,Network Access Server)要求用戶提供用戶名和口令,PAP以明文方式返回用戶信息。很明顯,這種驗證方式的安全性較差,第三方可以很容易的獲取被傳送的用戶名和口令,並利用這些信息與NAS建立連接獲取NAS提供的所有資源。所以,一旦用戶密碼被第三方竊取,PAP無法提供避免受到第三方攻擊的保障措施。
CHAP(挑戰-握手驗證協議 Challenge-Handshake Authentication Protocol)是一種加密的驗證方式,能夠避免建立連接時傳送用戶的真實密碼。NAS向遠程用戶發送一個挑戰口令(challenge),其中包括會話ID和一個任意生成的挑戰字串(arbitrary challengestring)。遠程客戶必須使用MD5單向哈希演算法(one-way hashing algorithm)返回用戶名和加密的挑戰口令,會話ID以及用戶口令,其中用戶名以非哈希方式發送。
CHAP對PAP進行了改進,不再直接通過鏈路發送明文口令,而是使用挑戰口令以哈希演算法對口令進行加密。因為伺服器端存有客戶的明文口令,所以伺服器可以重復客戶端進行的操作,並將結果與用戶返回的口令進行對照。CHAP為每一次驗證任意生成一個挑戰字串來防止受到再現攻擊(replay attack)。在整個連接過程中,CHAP將不定時的向客戶端重復發送挑戰口令,從而避免第3方冒充遠程客戶(remote client impersonation)進行攻擊。
12:ADSL是如何實現數據與語音同傳的?
物理層:頻分復用技術.(高頻傳輸數據,低頻傳輸語音)具體講解的話可以說明:調制,濾波,解調的過程.
13:OSPF中那幾種網路類型需要選擇DR,BDR?
廣播型網路和非廣播多路訪問NBMA網路需要選.
14:OSPF中完全末梢區域的特點及適用場合
特點:不能學習其他區域的路由
不能學習外部路由
完全末梢區域不僅使用預設路由到達OSPF自主系統外部的目的地址,而且使用這個預設路由到達這個區域外部的所有目的地址.一個完全末梢區域的ABR不僅阻塞AS外部LSA,而且阻塞所有匯總LSA.
適用場合:只有一出口的網路.
15:OSPF中為什麼要劃分多區域?
1、減小路由表大小
2、限制lsa的擴散
3、加快收斂
4、增強穩定性
16:NSSA區域的特點是什麼?
1.可以學習本區域連接的外部路由;
2.不學習其他區域轉發進來的外部路由
17:你都知道網路的那些冗餘技術,請說明.
交換機的冗餘性:spanning-tree、ethernet-channel
路由的冗餘性:HSRP,VRRP,GLBP.
(有必要的話可以詳細介紹)
18:HSRP的轉換時間是多長時間?
10s
19:標准訪問控制列表和擴展訪問控制列表的區別.
標准訪問控制列表:基於源進行過濾
擴展訪問控制列表: 基於源和目的地址、傳輸層協議和應用埠號進行過濾
20:NAT的原理及優缺點.
原理:轉換內部地址,轉換外部地址,PAT,解決地址重疊問題.
優點:節省IP地址,能夠處理地址重復的情況,增加了靈活性,消除了地址重新編號,隱藏了內部IP地址.
缺點:增加了延遲,丟失了端到端的IP的跟蹤過程,不能夠支持一些特定的應用(如:SNMP),需要更多的內存來存儲一個NAT表,需要更多的CPU來處理NAT的過程.
21: 對稱性加密演算法和非對稱型加密演算法的不同?
對稱性加密演算法的雙方共同維護一組相同的密鑰,並使用該密鑰加密雙方的數據,加密速度快,但密鑰的維護需要雙方的協商,容易被人竊取;非對稱型加密演算法使用公鑰和私鑰,雙方維護對方的公鑰(一對),並且各自維護自己的私鑰,在加密過程中,通常使用對端公鑰進行加密,對端接受後使用其私鑰進行解密,加密性良好,而且不易被竊取,但加密速度慢.
22: 安全關聯的作用?
SA分為兩步驟:1.IKE SA,用於雙方的對等體認證,認證對方為合法的對端;2.IPSec SA,用於雙方認證後,協商對數據保護的方式.
23: ESP和AH的區別?
ESP除了可以對數據進行認證外,還可以對數據進行加密;AH不能對數據進行加密,但對數據認證的支持更好 .
24: snmp的兩種工作方式是什麼,有什麼特點?
首先,SNMP是基於UDP的,有兩種工作方式,一種是輪詢,一種是中斷.
輪詢:網管工作站隨機開埠輪詢被管設備的UDP的161埠.
中斷:被管設備將trap報文主動發給網管工作站的UDP的162埠.
特點:輪詢一定能夠查到被管設備是否出現了故障,但實時性不好.
中斷實時性好(觸發更新),但不一定能夠將trap報文報告給網管工作站.
㈧ 我是應用數學專業,要參加浙江中控集團的筆試,我應聘的是演算法工程師,誰知道筆試會考些什麼
我應聘了硬體工程師,筆試題全是行測和情感題,面試技術方面比較多
㈨ 阿里演算法工程師面試,有要求寫代碼么
如果說是演算法工程師面試的話,
那麼一般是要求寫代碼的,
所以面試之前要好好的復習一下!
㈩ 阿里巴巴演算法工程師筆試題和c++職位有區別嗎
肯定有區別的,演算法工程師考察的多是數據結構,常用演算法(如神經網路等)
而C++主要是一門編程語言