版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
2025年IT公司筆試面試題附答案一、算法與數(shù)據(jù)結(jié)構(gòu)1.題目:某物流平臺需規(guī)劃無人機配送路徑,地圖由m×n的網(wǎng)格表示,每個網(wǎng)格(i,j)有地形成本c[i][j](正整數(shù))。無人機從左上角(0,0)出發(fā),每次只能向右或向下飛行,到達右下角(m-1,n-1)時需總成本最小。若網(wǎng)格中存在若干“禁飛區(qū)”(c[i][j]=-1),無法經(jīng)過,設計算法計算是否存在可行路徑,若存在則返回最小成本,否則返回-1。答案:采用動態(tài)規(guī)劃。定義dp[i][j]為到達(i,j)的最小成本。初始化時,若起點或終點為禁飛區(qū),直接返回-1。第一行和第一列需檢查路徑是否被禁飛區(qū)阻斷(若某位置為禁飛區(qū),則其后所有位置不可達)。狀態(tài)轉(zhuǎn)移方程:dp[i][j]=min(dp[i-1][j],dp[i][j-1])+c[i][j](僅當c[i][j]≠-1且上方/左方可達時有效)。最終若dp[m-1][n-1]為無窮大則返回-1,否則返回該值。時間復雜度O(mn),空間復雜度可優(yōu)化至O(n)(滾動數(shù)組)。2.題目:實現(xiàn)一個函數(shù),輸入為多叉樹(每個節(jié)點可能有k個子節(jié)點)的兩個節(jié)點p和q,返回它們的最近公共祖先(LCA)。要求非遞歸實現(xiàn),且不使用額外空間存儲路徑。答案:采用后序遍歷思想。定義輔助函數(shù)遞歸查找p或q。對于當前節(jié)點,若其本身是p或q,或其子樹中包含p/q,則返回該節(jié)點;否則返回null。具體步驟:(1)對當前節(jié)點的所有子節(jié)點遞歸調(diào)用輔助函數(shù),收集結(jié)果;(2)若子節(jié)點返回結(jié)果中存在兩個非null值(p和q分別在不同子樹),則當前節(jié)點為LCA;(3)若僅一個子節(jié)點返回非null值,或當前節(jié)點是p/q,則向上傳遞該值。非遞歸實現(xiàn)可通過棧模擬后序遍歷,記錄父節(jié)點關系,當找到p和q后,從兩者向上回溯找第一個共同節(jié)點。時間復雜度O(n),空間復雜度O(h)(h為樹高)。二、操作系統(tǒng)與計算機網(wǎng)絡3.題目:某微服務架構(gòu)中,訂單服務(A)需調(diào)用庫存服務(B)和支付服務(C),三者部署在不同物理機。A與B、A與C間需進行進程通信,需選擇通信協(xié)議并說明理由。若B需向A推送庫存變更通知(非A主動請求),協(xié)議選擇是否變化?答案:(1)同步調(diào)用場景(A調(diào)用B/C):推薦gRPC(基于HTTP/2)。原因:支持二進制協(xié)議(更小報文)、多路復用(減少連接開銷)、強類型接口定義(Protobuf提升可靠性)、支持流模式(未來擴展)。若需兼容性,也可選用HTTP/1.1+JSON,但性能弱于gRPC。(2)異步通知場景(B推送給A):推薦使用消息隊列(如Kafka/RabbitMQ)或WebSocket。消息隊列解耦雙方,支持異步、削峰填谷;WebSocket支持長連接,適合實時推送。若要求低延遲且B與A網(wǎng)絡可靠,也可使用HTTP長輪詢,但效率低于前兩者。4.題目:簡述HTTPS握手過程(TLS1.3版本),并說明其相比TLS1.2的主要優(yōu)化點。答案:TLS1.3握手流程(以客戶端首次連接為例):(1)客戶端發(fā)送ClientHello(支持的TLS版本、密碼套件列表、隨機數(shù)ClientRandom、擴展信息如支持的簽名算法);(2)服務端響應ServerHello(選定的密碼套件、ServerRandom、證書鏈、ServerKeyExchange(若使用ECDHE));(3)客戶端驗證證書,提供預主密鑰(若使用ECC,通過服務端公鑰加密),計算主密鑰(基于ClientRandom、ServerRandom、預主密鑰);(4)客戶端發(fā)送Finished消息(使用主密鑰加密的握手信息哈希);(5)服務端驗證Finished消息,發(fā)送自己的Finished消息;(6)握手完成,后續(xù)通信使用主密鑰派生的會話密鑰加密。TLS1.3優(yōu)化點:(1)減少往返次數(shù):廢棄RSA密鑰交換,默認使用ECHDE(橢圓曲線密鑰交換),支持0-RTT(需會話恢復);(2)簡化密碼套件:僅保留AES-GCM、ChaCha20-Poly1305等現(xiàn)代加密算法,移除DES、3DES等弱算法;(3)增強安全性:禁止重協(xié)商,密鑰交換過程更隱蔽(前向安全默認開啟);(4)握手消息加密:ServerHello之后的消息均加密,防止中間者攻擊。三、數(shù)據(jù)庫與SQL5.題目:某電商用戶行為表user_behavior(user_idINT,behavior_typeVARCHAR(10),occur_timeDATETIME)記錄用戶瀏覽、加購、下單等行為。需統(tǒng)計:(1)每個用戶連續(xù)3天及以上登錄(behavior_type='login')的起始日期;(2)過去30天內(nèi),每個用戶的“瀏覽→加購→下單”轉(zhuǎn)化路徑的最短耗時(按用戶分組)。答案:(1)連續(xù)登錄問題可通過窗口函數(shù)標記連續(xù)組。步驟:①篩選login記錄并按user_id和occur_time排序;②計算每條記錄與前一條記錄的日期差(DATEDIFF),若差為1則屬于同一連續(xù)組,否則新組;③用ROW_NUMBER()提供組內(nèi)序號,組標識=occur_time-INTERVAL(序號-1)DAY;④按user_id和組標識分組,篩選組內(nèi)記錄數(shù)≥3的,取MIN(occur_time)作為起始日期。SQL示例(MySQL):WITHrankedAS(SELECTuser_id,occur_time,ROW_NUMBER()OVER(PARTITIONBYuser_idORDERBYoccur_time)ASrnFROMuser_behaviorWHEREbehavior_type='login'),groupedAS(SELECTuser_id,occur_time,DATE_SUB(occur_time,INTERVAL(rn-1)DAY)ASgroup_dateFROMranked)SELECTuser_id,MIN(occur_time)ASstart_dateFROMgroupedGROUPBYuser_id,group_dateHAVINGCOUNT()>=3;(2)轉(zhuǎn)化路徑最短耗時需關聯(lián)同一用戶的瀏覽、加購、下單記錄,且時間順序為瀏覽<加購<下單。使用自連接或窗口函數(shù):WITHfilteredAS(SELECTuser_id,behavior_type,occur_time,LAG(occur_time)OVER(PARTITIONBYuser_idORDERBYoccur_time)ASprev_time,LAG(behavior_type)OVER(PARTITIONBYuser_idORDERBYoccur_time)ASprev_typeFROMuser_behaviorWHEREbehavior_typeIN('view','cart','order')),pathAS(SELECTuser_id,occur_timeASorder_time,prev_timeAScart_timeFROMfilteredWHEREbehavior_type='order'ANDprev_type='cart'),path2AS(SELECTp.user_id,p.order_time,f.occur_timeASview_timeFROMpathpJOINfilteredfONp.user_id=f.user_idANDf.behavior_type='view'ANDf.occur_time<p.cart_time)SELECTuser_id,MIN(TIMESTAMPDIFF(SECOND,view_time,order_time))ASmin_durationFROMpath2GROUPBYuser_id;四、后端開發(fā)與框架6.題目:Spring框架中,@Transactional的propagation屬性有哪些取值?若存在方法A(propagation=REQUIRED)調(diào)用方法B(propagation=REQUIRES_NEW),當B拋出異常被A捕獲并處理時,A的事務是否會回滾?說明原因。答案:propagation取值包括:REQUIRED(默認,當前有事務則加入,無則新建)、SUPPORTS(當前有事務則加入,無則非事務執(zhí)行)、MANDATORY(必須在現(xiàn)有事務中執(zhí)行,否則拋異常)、REQUIRES_NEW(新建事務,掛起當前事務)、NOT_SUPPORTED(非事務執(zhí)行,掛起當前事務)、NEVER(非事務執(zhí)行,當前有事務則拋異常)、NESTED(嵌套事務,基于保存點)。當A(REQUIRED)調(diào)用B(REQUIRES_NEW)時,B會新建一個獨立事務。若B拋出異常被A捕獲,B的事務會回滾(因REQUIRES_NEW獨立),但A的事務是否回滾取決于異常類型:若B拋出的是RuntimeException或Error,且A未在@Transactional中配置noRollbackFor忽略該異常,則A的事務不會自動回滾(因異常被捕獲,未傳播到A的方法外);若A在catch塊中手動調(diào)用TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(),則A的事務會回滾。五、前端開發(fā)與工程化7.題目:Vue3中,如何實現(xiàn)一個自定義指令v-debounce,要求綁定元素的input事件觸發(fā)時延遲執(zhí)行回調(diào)(延遲時間可通過參數(shù)指定,默認300ms),且支持動態(tài)修改延遲時間。答案:Vue3自定義指令通過defineDirective實現(xiàn),核心是利用閉包保存定時器,處理事件觸發(fā)時的防抖邏輯。步驟如下:(1)在beforeMount鉤子中,獲取元素、綁定值(延遲時間)、回調(diào)函數(shù);(2)為元素添加input事件監(jiān)聽器,觸發(fā)時清除現(xiàn)有定時器,重新設置定時器;(3)在updated鉤子中,處理延遲時間的動態(tài)更新(若新值與舊值不同,更新緩存的延遲時間);(4)在beforeUnmount鉤子中,移除事件監(jiān)聽器并清除定時器,避免內(nèi)存泄漏。示例代碼:constdebounceDirective={beforeMount(el,binding){lettimer=null;constdelay=binding.arg||300;consthandler=binding.value;el.handler=(e)=>{clearTimeout(timer);timer=setTimeout(()=>handler(e),delay);};el.addEventListener('input',el.handler);},updated(el,binding){constnewDelay=binding.arg||300;if(newDelay!==(binding.oldArg||300)){el.removeEventListener('input',el.handler);el.handler=(e)=>{clearTimeout(timer);timer=setTimeout(()=>binding.value(e),newDelay);};el.addEventListener('input',el.handler);}},beforeUnmount(el){clearTimeout(timer);el.removeEventListener('input',el.handler);}};//使用:<inputv-debounce:500="onInput"/>六、系統(tǒng)設計8.題目:設計一個短鏈接服務(如將/long/path轉(zhuǎn)化為https://short.url/abc123),需支持高并發(fā)(10萬QPS)、低延遲(響應時間<100ms)、高可用(99.99%),并考慮防刷、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 輔警招聘法律基礎題庫及答案
- 2026年變電站設備短路應急處置預案
- 2026某事業(yè)單位招聘保潔崗位1人參考考試題庫附答案解析
- 2026年上海市農(nóng)業(yè)科技服務中心公開招聘博士研究生備考考試題庫附答案解析
- 2026內(nèi)蒙古阿拉善盟教育教學研究中心引進教育緊缺人才(教研員)6人備考考試試題附答案解析
- 2026年車間除塵系統(tǒng)故障粉塵爆炸事故應急救援預案演練方案
- 新聞生產(chǎn)管理與管理制度
- 氣象局安全生產(chǎn)會議制度
- 酒店全生產(chǎn)檔案管理制度
- 城管局安全生產(chǎn)會議制度
- 2025至2030中國EB病毒檢測行業(yè)標準制定與市場規(guī)范化發(fā)展報告
- 2026中國電信四川公用信息產(chǎn)業(yè)有限責任公司社會成熟人才招聘備考題庫及答案詳解1套
- 2026年浙江高考語文真題試卷+答案
- 2025 年大學人工智能(AI 應用)期中測試卷
- 《市場營銷(第四版)》中職完整全套教學課件
- (正式版)DB61∕T 2121-2025 《風力發(fā)電場集電線路設計規(guī)范》
- 疑難病例討論制度落實常見問題與改進建議
- 創(chuàng)傷性脾破裂的護理
- 入股到別人私人名下協(xié)議書
- MT-T 1199-2023 煤礦用防爆柴油機無軌膠輪運輸車輛安全技術(shù)條件
- ?;愤\輸安全培訓-危險品運輸車輛的安全檢查與維護
評論
0/150
提交評論