99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

算法題類型以及準(zhǔn)備策略

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:Coder梁 ? 作者:梁唐 ? 2021-09-02 10:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天就和大家聊聊大公司的面試環(huán)節(jié)經(jīng)常涉及的算法題類型以及準(zhǔn)備策略。

問題難度首先大家比較關(guān)心的就是面試時(shí)候出現(xiàn)的算法題的難度,從我的個(gè)人經(jīng)驗(yàn)來看,除了有一次和同樣有acm獲獎(jiǎng)經(jīng)歷的面試官切磋了一次之外,基本上難度都沒有超過LeetCode的困難難度。并且這還是因?yàn)槲矣衋cm經(jīng)歷加成的情況下,大部分問題都只有LeetCode Medium的難度。

當(dāng)然LeetCode的中等難度這個(gè)范圍也是比較寬的,既有非常簡單無聊的水題,也有比較棘手,值得深入思考的高價(jià)值問題。所以只是知道這一點(diǎn)一點(diǎn)用也沒有,想要知道對(duì)自己來說究竟有多難,還是需要自己親身體會(huì)一下。

但可以非??隙ǖ卣f,LeetCode中Medium難度下的問題所用到的算法,基本上都在大學(xué)算法課程的內(nèi)容里。幾乎沒有超綱的內(nèi)容,也不涉及比較復(fù)雜和困難的數(shù)據(jù)結(jié)構(gòu),都是非常非?;A(chǔ)的,甚至都遠(yuǎn)遠(yuǎn)達(dá)不到高中信息競賽的水平。我一點(diǎn)沒和大家夸張,下面這張圖是我網(wǎng)盤里當(dāng)年高中競賽的課件,大家可以感受一下難度。

但是算法這個(gè)東西,大家千萬不要被嚇到,主要是心理上唬人,實(shí)際的難度并沒有那么大。真正下定決心去練習(xí),從入門到精通也不過是幾個(gè)月的事情。我當(dāng)年好幾個(gè)隊(duì)友都是大學(xué)才開始編程,短短半年時(shí)間已經(jīng)在賽場上獨(dú)當(dāng)一面了。

常見的題型面試或者白板編程,由于形式的限制,題目的選擇范圍其實(shí)并不大。并不難理解,畢竟面試的時(shí)間有限,也不能全拿來做題,而太困難太復(fù)雜的問題候選人一點(diǎn)思路也沒有,大部分人都做不上來,也完全起不到考察和篩選的意義。

所以拿來當(dāng)做面試和白板編程的問題,不會(huì)很復(fù)雜,至少會(huì)保證絕大多數(shù)的候選人都聽說過。就好像打游戲一樣,哪怕是玩家津津樂道的魂游戲,總要有過關(guān)的可能。如果上來就考察一個(gè)問題,結(jié)果你連正解用到的算法都沒聽說過,一開始就沒有做出來的可能,這種問題問了就只能浪費(fèi)時(shí)間。

根據(jù)我的經(jīng)驗(yàn),面試當(dāng)中常問的問題基本上就這幾種:二分、遞歸、分治、排序、動(dòng)態(tài)規(guī)劃。

這幾種算法只要是科班出身,基本上都或多或少聽說過,理論上來說都應(yīng)該能做出來。并且這些算法除了比較基礎(chǔ)之外,它們的代碼量都不大,一般核心代碼都不會(huì)超過30行,確保編碼的時(shí)間不會(huì)太長。第二是比較考驗(yàn)思維,通過你對(duì)這幾個(gè)算法的理解深度,就足以看出來你的思維能力和算法能力了。

解題套路劃好了重點(diǎn),再分享幾個(gè)解題的套路。

縮小問題規(guī)模有可能問題里問的是一個(gè)規(guī)模很大的問題,比如漢諾塔問題,要移動(dòng)64個(gè)圓盤,這太復(fù)雜了,我們根本無法思考。不妨把問題的規(guī)??s小,比如縮小到3個(gè)圓盤,然后我們就可以列舉一下情況,找找規(guī)律和套路了。

即使是在acm賽場當(dāng)中,這個(gè)方法也非常管用。

確定復(fù)雜度在acm賽場上題目當(dāng)中都會(huì)標(biāo)明數(shù)據(jù)的大小范圍,除了起到限制作用之外也是一個(gè)很大的提示。我們可以根據(jù)數(shù)據(jù)的規(guī)模反推出正解的復(fù)雜度范圍,從而排除掉一些不可能的算法。

比如說要在個(gè)數(shù)當(dāng)中尋找某個(gè)數(shù),由于計(jì)算機(jī)每秒的運(yùn)行次數(shù)在這個(gè)量級(jí),這么大的規(guī)模遍歷一遍都有些扛不住,那么顯然正解的復(fù)雜度一定在及以下。這么一來,我們就可以根據(jù)算法的復(fù)雜度排除掉一大批達(dá)不到要求的算法,排除錯(cuò)誤的選項(xiàng)。

在面試的時(shí)候面試官往往不會(huì)明確給出數(shù)據(jù)的規(guī)模,我們可以自己結(jié)合實(shí)際情況分析,當(dāng)然直接提問也是一個(gè)不錯(cuò)的選擇。

優(yōu)化思路面試不是比賽,并不是一定要給出正解。有的時(shí)候,我們一時(shí)陷入誤區(qū)沒想到解法也是常有的。重要的并不是我們是否想出了解法,而是我們能否展現(xiàn)我們思維的能力,打動(dòng)面試官。

所以有的時(shí)候一下子沒有想到最優(yōu)解也沒有關(guān)系,我們可以先易后難,先把一些簡單可行的解法說出來,然后再進(jìn)行優(yōu)化。

比如LeetCode第4題,尋找兩個(gè)有序數(shù)組的中位數(shù)。我們當(dāng)然很難一下子想出的正解,但是我們可以先從最簡單的方法說起。比如重新排序直接尋找,這樣操作的復(fù)雜度是。說出這個(gè)方法之后,我們接著從不使用排序解決問題的角度繼續(xù)思考,如此一步步逐漸深入,即使最終沒能找到正解,也體現(xiàn)出了我們的思考是有章法的,并且思考和分析問題的能力是有的。

建議最后給大家分享幾點(diǎn)我個(gè)人的小建議,幫助大家少走點(diǎn)彎路。

貴精不貴多如果是為了準(zhǔn)備面試,就像我前面列舉的一樣,其實(shí)并不會(huì)涉及很多內(nèi)容。相比去研究很多高大上面試的時(shí)候用不到的高大上算法,倒不如好好把這幾個(gè)算法啃扎實(shí)。

就拿排序來說,想要全部搞明白就很不簡單。我隨便寫幾個(gè)問題,大家不妨對(duì)照一下看看能不能回答上來。

冒泡排序和選擇排序有什么區(qū)別?

為什么說快速排序和歸并排序都基于分治算法,但它們的最差復(fù)雜度不同?

排序的穩(wěn)定性是什么?哪些算法是穩(wěn)定的,哪些不是?

關(guān)于快速排序算法的最差復(fù)雜度,有哪些優(yōu)化?

如果都能不僅僅滿足原理,而是可以深入到細(xì)節(jié)的方方面面去鉆研,那么即使只是準(zhǔn)備了幾個(gè)算法,應(yīng)付一般的面試都不在話下。

成體系化訓(xùn)練算法的學(xué)習(xí)過程是比較痛苦的,尤其是如果我們漫無目的地去訓(xùn)練和學(xué)習(xí),進(jìn)展非常緩慢,非常勸退。很多同學(xué)都有刷題刷了一堆,但是水平好像沒什么提升的情況。

我個(gè)人感覺比較有效的方法是成體系化的訓(xùn)練,不要按照題目順序刷題,而是以算法劃分專題,按照專題刷題。一個(gè)算法一個(gè)算法的硬啃,一個(gè)算法吃透再吃下一個(gè)。這樣訓(xùn)練下來印象會(huì)非常深刻,對(duì)于算法的理解也會(huì)深刻得多,也不容易忘記。要比題目刷了一堆, 算法也用了一堆, 看起用得多,但也忘得多要好得多。

篇幅有限,今天就和大家聊到這里,感謝閱讀和支持。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4709

    瀏覽量

    95334
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3689

    瀏覽量

    95212

原文標(biāo)題:LeetCode ,YYDS!

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    無軸承永磁電機(jī)懸浮波動(dòng)抑制策略

    。將等效擾動(dòng)電流補(bǔ)償?shù)娇h浮控制算法中以抑制懸浮波動(dòng)。與僅采用PID控制算法相比較,仿真結(jié)果表明所提控制策略能夠抑制懸浮波動(dòng),實(shí)現(xiàn)電機(jī)穩(wěn)定懸浮。 純分享帖,點(diǎn)擊下方附件免費(fèi)獲取完整資料~~~ 內(nèi)容有
    發(fā)表于 07-14 17:51

    雙三相感應(yīng)電機(jī)SVPWM的新型過調(diào)制策略

    摘要:過調(diào)制策略能夠提高逆變器輸出電壓范圍和品質(zhì),從而提高電機(jī)輸出轉(zhuǎn)速范圍和轉(zhuǎn)矩特性。針對(duì)雙三相感應(yīng)電機(jī)空間矢量脈寬調(diào)制(SVPWM)算法過調(diào)制區(qū)域有限,分區(qū)實(shí)現(xiàn)復(fù)雜,內(nèi)存占用率大等問題,提出一種
    發(fā)表于 06-19 11:10

    基于RV1126開發(fā)板的AI算法開發(fā)流程

    AI算法開發(fā)流程由需求分析到準(zhǔn)備數(shù)據(jù),然后到選取模型,訓(xùn)練模型,接著模型轉(zhuǎn)換后進(jìn)行模型部署
    的頭像 發(fā)表于 04-18 10:47 ?274次閱讀
    基于RV1126開發(fā)板的AI<b class='flag-5'>算法</b>開發(fā)流程

    電機(jī)大范圍調(diào)速的綜合電壓調(diào)制策略

    使用DPWM策略,并提出一種基于零矢量分配的過渡策略,使得兩種調(diào)制方式可以平滑的過渡。這種方法使得電壓波形質(zhì)量,開關(guān)損耗以及電壓線性范圍得到優(yōu)化。最后,搭建了基于Simulink的仿真模型,結(jié)果表明提出的方法可
    發(fā)表于 04-01 14:51

    C++學(xué)到什么程度可以找工作?

    常重要的。這可以是個(gè)人項(xiàng)目、開源貢獻(xiàn)或是學(xué)校作業(yè)等,關(guān)鍵是要能展示你解決問題的能力和技術(shù)水平。 8. **八股文準(zhǔn)備**:針對(duì)校招,還需要準(zhǔn)備一些經(jīng)典的面試問題,即所謂的“八股文”,比如常見的算法
    發(fā)表于 03-13 10:19

    大語言模型的解碼策略與關(guān)鍵優(yōu)化總結(jié)

    本文系統(tǒng)性地闡述了大型語言模型(LargeLanguageModels,LLMs)中的解碼策略技術(shù)原理及其實(shí)踐應(yīng)用。通過深入分析各類解碼算法的工作機(jī)制、性能特征和優(yōu)化方法,為研究者和工程師提供了全面
    的頭像 發(fā)表于 02-18 12:00 ?574次閱讀
    大語言模型的解碼<b class='flag-5'>策略</b>與關(guān)鍵優(yōu)化總結(jié)

    DLPC7540EVM是否支持自定義的圖像處理算法,以及如何進(jìn)行算法的移植?

    是否支持自定義的圖像處理算法,以及如何進(jìn)行算法的移植?
    發(fā)表于 02-17 08:25

    探索網(wǎng)絡(luò)個(gè)性化服務(wù)新紀(jì)元:深入解析IMEIsv的差異化保障策略

    在當(dāng)前網(wǎng)絡(luò)中,如果對(duì)所有UE應(yīng)用相同的RRM(Radio Resource Management)策略,無法滿足不同類型UE的不同要求。為了給指定類型UE提供特定的RRM策略,3GPP
    的頭像 發(fā)表于 02-14 16:54 ?462次閱讀
    探索網(wǎng)絡(luò)個(gè)性化服務(wù)新紀(jì)元:深入解析IMEIsv的差異化保障<b class='flag-5'>策略</b>

    設(shè)計(jì)模式-策略模式

    ,不會(huì)影響到使用算法的客戶。策略模式屬性行為模式。 二、實(shí)際應(yīng)用 業(yè)務(wù)場景:業(yè)務(wù)需要監(jiān)聽多種消息,將接收到的消息更新到同一個(gè)ES中,不同的消息類型使用不同的策略處理,補(bǔ)充不同的數(shù)據(jù)信息
    的頭像 發(fā)表于 01-08 13:47 ?359次閱讀
    設(shè)計(jì)模式-<b class='flag-5'>策略</b>模式

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+內(nèi)容簡介

    內(nèi)容簡介這是一本深入解讀基礎(chǔ)算法及其電路設(shè)計(jì),以打通算法研發(fā)到數(shù)字IC設(shè)計(jì)的實(shí)現(xiàn)屏障,以及指導(dǎo)芯片設(shè)計(jì)工程師從底層掌握復(fù)雜電路設(shè)計(jì)與優(yōu)化方法為目標(biāo)的專業(yè)技術(shù)書。任何芯片(如WiFi芯片、5G芯片
    發(fā)表于 11-21 17:14

    參加電賽需要準(zhǔn)備什么

    參加電子設(shè)計(jì)競賽(電賽)需要準(zhǔn)備的內(nèi)容相當(dāng)廣泛,以下是一些關(guān)鍵的準(zhǔn)備事項(xiàng):
    的頭像 發(fā)表于 10-30 09:27 ?3226次閱讀
    參加電賽需要<b class='flag-5'>準(zhǔn)備</b>什么

    高校開展RK3588課研究 只能人工標(biāo)注練算法

    瑞芯微推出的RK3588系列圖像處理板作為國產(chǎn)化板卡的性能巔峰,成為了各領(lǐng)域研究開發(fā)的必選項(xiàng),它能實(shí)現(xiàn)穩(wěn)定的目標(biāo)檢測、識(shí)別以及跟蹤,具有重要的研究開發(fā)價(jià)值。特別是對(duì)于高校而言,將RK3588作為課題
    的頭像 發(fā)表于 10-23 08:07 ?617次閱讀
    高校開展RK3588課<b class='flag-5'>題</b>研究    只能人工標(biāo)注練<b class='flag-5'>算法</b>?

    壓縮算法類型和應(yīng)用

    壓縮算法是一種通過減少數(shù)據(jù)量來節(jié)省存儲(chǔ)空間或傳輸數(shù)據(jù)的技術(shù)。壓縮算法可以分為兩種類型:有損壓縮和無損壓縮。
    的頭像 發(fā)表于 10-21 13:50 ?894次閱讀

    思爾芯賽正式發(fā)布,邀你共戰(zhàn)EDA精英挑戰(zhàn)賽!

    發(fā)布COMPETITIONRELEASE2024中國研究生創(chuàng)芯大賽·EDA精英挑戰(zhàn)賽(原“集成電路EDA設(shè)計(jì)精英挑戰(zhàn)賽”)現(xiàn)已正式拉開帷幕。作為核心出題企業(yè)之一思爾芯(S2C),已經(jīng)為你們準(zhǔn)備
    的頭像 發(fā)表于 08-03 08:24 ?1108次閱讀
    思爾芯賽<b class='flag-5'>題</b>正式發(fā)布,邀你共戰(zhàn)EDA精英挑戰(zhàn)賽!

    充電也要算法?儲(chǔ)能充電芯片中的算法處理器

    或充電設(shè)備中,負(fù)責(zé)實(shí)時(shí)監(jiān)控電池狀態(tài),執(zhí)行充電策略,并調(diào)整充電參數(shù),如電流和電壓。 ? 比如算法處理器可以執(zhí)行復(fù)雜的充電算法,如恒流/恒壓充電、脈沖充電、智能協(xié)商充電等,這些算法能夠根據(jù)
    的頭像 發(fā)表于 07-30 00:07 ?4244次閱讀