㈠ 牛客網刷題ACM模式 Objc Swift
之前做演算法題都是輸入輸出都確定了
到牛客網這個ACM 感覺很迷茫
用Swift 搞定了輸入出處 但是 retrun a + b 這種簡單的加法都超時 只能放棄了(Leetcode 做的演算法題 都是用的Swift 之前是Java 支持之後 就一直用Swift了)。如果將來牛客網優化了,還是會用Swift
while 能接收多組數據
這里好多OC語法不能用 用就超時了
想到 OC 是C的超集 可以用C語言
好久沒用C了,這里簡單記錄下C的基本語法,夠做題的
這里記錄下
㈡ cv演算法勸退嗎
作者丨記憶的迷谷@知乎(已授權)
來源丨https://zhuanlan.hu.com/p/576729164
編輯丨極市平台
寫在前面
是的,今年的秋招確實是肉眼可見的難度增加:縮招、裁員、畢業生人數爆炸,這些關鍵字已然成為2023屆秋招的代名詞。競爭激烈,演算法崗入坑的難度更是直線上升。卡第一學歷、卡名校、卡重點實驗室......這些「基本操作」早已司空見慣。
在捲成麻花的2022年,一個沒有上述背景、沒有名校撐腰的普通科班小碩能入坑中大廠的CV演算法崗嗎?
我的回答是:能,但是很難、很卷,且容錯率較低。因為CV演算法崗的競爭對手基本都在985分段,且動不動就是某C9高校的重點實驗室。
因為身邊的人不走演算法崗,所以全程基本靠自己摸索,期間遇到了各種困難、走了許多彎路。為了記錄這段有意義的經歷,同時給純昌自己一樣出身普通的師弟們(實驗室沒有師妹)提供CV演算法崗的就業思路,將本人的整個秋招的真實歷程分享給大家。【長文警告↓↓↓】
導讀:
本篇文章主要分為以下幾個章節:
【背景】,【歷程】主要介紹了本人秋招前的狀態,以及從研究生入學到秋招的過程。
【需要掌握的技能】從硬實力、軟實力兩個方面介紹秋招時可以增加自己競爭力的點。由於每個人的基礎情況不同,CV演算法崗也有較多細分方向,本章節僅供參考,大佬請直接略過。
【總結】秋招的一些小的建議。
補充說明: 1. 閱讀文章之前,請務必了解「倖存者偏差」這一概念,CV演算法崗的秋招形式嚴峻,請保持理智。 2. 本文的「普通」一詞是指本科雙非、碩士非985、非重點實驗室、無頂會、投遞崗位為CV演算法崗的計算機科班應屆研究生,並無冒犯之意。
背景概述:
本人本科雙非軟體工程專業,碩士普通211的計算機技術專業,目前研究方向是計算機視覺。
秋招拿到【虹軟、vivo、OPPO三家offer,均為計算機視覺類(CV)演算法崗,有SP也有大白菜】(除去國企銀行),和大佬們的offer沒得比,但感覺基本接近自己的預期。(雖然已於9月獲得虹軟轉正意向書,為了給自己的秋招不留遺憾,同時可以通過不同的offer明確自己在秋招大軍的整體定位,所以堅持完整參與了秋招)。
具體情況:
身邊的環境
除了我的大大大師兄(高我三四屆)拿了某中廠演算法offer以外,我們實驗室就再也沒有人走過演算法崗。包括同門在內的同屆同學,彎塌也基本都是開發。師兄和同學也都勸退我走演算法,改開發。
在我找到第一份演算法實習之前,大部分人都認為我選擇這條路是一個頭鐵且愚蠢的行為,且常聽到陰陽怪氣的言論。
每次刷知乎,總能看到「19年演算法崗供大於求」、「20年演算法崗諸神黃昏」、「21年演算法崗灰飛煙滅」,今年又換了個四字詞語 --「人間煉獄」。各路「過來人」也都是全方位勸退。
打開網易新聞 查看精彩圖片
好在自己的家人比較支持我自己做決定,只不過最後選擇offer的時候,家人們曾勸我躺平一個隨手拿的國企,放棄自己的專業,我要真想躺平還用的著這么卷么,大無語。
總之,身邊自始至終支持我走演算法崗的,四捨五入就只剩自己了。沒關系,意料之中罷了。
自己擁有的一些條件
導師不會push我們給他發論文,且只要完成規定的任務,就允許我們自己出去找實習。【秋招上岸的關鍵性因素】
實驗室有免費使用的入門級計算資源,雖然只是1080Ti這種級別的顯卡,且當時還要和師兄一起用。但是拿來學習跑跑實驗還是綽綽有餘的。同時家裡贊助更新了一台2060GPU的筆記本,用來本地調試也挺好使。
學校的線下課程在研一期間全部上完,研一課程結束就可以做實習早鳥。
歷程
本節按照時間線的順序,敘述了本人歷時兩年的秋招戰線。
【初識演算法】2020年9月~2020年10月
結束擺爛、確定方向階段。研究生入學,之前聯系的導師莫名其妙把我鴿 了,不得不重新找導師。
我的選擇標准有兩個:一是教授,二是允許實習。在本科國獎托底和自己死皮賴臉的堅持下,我現在的導師給加了一個名額,順利入組。
導師給我明確了CV的研究方向,同時分享了一些資料(因為才學疏淺,當時沒能看懂,後面就跑去B站知乎學習了),每周組會匯報自己的學習進度。也是這個時候發現自己對CV挺感興趣的,也是初生牛犢不怕虎,確定自己走演算法崗的方向。
【走出迷茫】2020年11月~2021年2月
夯實基礎階段。因為導師安排的任務主要偏學術,我也意識到:如果僅僅靠導師的指導、按部就班的學習就去找演算法崗工作,是遠遠不夠的。埋褲圓於是,自己找到了一位前輩指點自己系統地入門深度學習。之後制定學習計劃、學習基礎鋪墊知識、篩選和閱讀paper、debug源碼、參照已開源的工作來復現未開源的論文......在完成導師布置的任務之餘,花了大量時間,算是搞明白深度學習的路子了。在此期間,完成導師安排的項目、自己找一些開源的項目補充學習,可以加深自己的理解同時還能潤色簡歷。
打開網易新聞 查看精彩圖片
當時的部分學習計劃(分類&檢測篇)
因為搞演算法除了python的基本要求外,C++多少也要會一些。也是從這個時候,制定了刷力扣的長期計劃,強迫自己學習C++,編程題也全部用C++寫。刷題不求多,但重在把思維和語法熟練度鍛煉好。
【穩扎穩打】2021年3月~2021年5月
備戰實習階段。過年給自己放了半個月假,開始著手找第一段實習。聽了師兄的建議(當時師兄在鵝廠實習搞開發,respect),開始刷牛客面經,查漏補缺,力扣保證一周刷七題。
同時系統地整理之前學習的筆記,也是這個時候我寫了知乎的第一篇博客,並立下了一年寫完50篇技術博客的flag(已於2022年4月達成)。
【初露鋒芒】2021年5月~2021年6月
第一段實習的投遞、面試階段。第一次投實習沒有經驗,先投了一些難度拉滿的大廠:商湯、位元組都給了面試,但是面得稀爛,商湯的面試官更是在無coding題的情況下問了我兩個小時的問題,面試結束後當場自閉。
後來總結了面試失敗的經驗,也補上了自己面試中沒有答出來的知識點。現在想想,當時的我真的是愚蠢至極,就應該先面小廠,積累面試經驗,起碼不至於面試過後臟了自己的大廠面評(因為秋招的時候,這兩家秒掛我的簡歷,應該是自己作沒的 )。
經歷了十多場面試,也積累了足夠的經驗,最終自己如願拿到了vivo AI研究院的演算法崗實習offer。
打開網易新聞 查看精彩圖片
【漸入佳境】2021年7月~2022年1月
第一段實習。在我的軟磨硬泡下,導師先是同意我出去實習半年(美滋滋)。
入職以後,令人窒息的壓力接憧而至:老大給我的研究方向是神經網路結構搜索(NAS)方向 -- 一個自己從來沒聽說過的預研方向,與此同時,同組的實習生來自武大,還比我早來一個月,需要盡快跟進她的進度。於是,自己白天調研相關工作、復現一些論文、慢慢接手項目,晚上加班讀源碼、刷博客(卷到了旁邊的實習生,實在抱歉)。第一個月頂著壓力,總算把進度拉上來,項目步入正軌。
9月,恰好看到Kaggle有個CV新賽,恰好這時候藍廠取消大小周,於是就報名參加了。之後差不多兩個月的時間,白天趕項目,晚上和周末搞比賽。
11月,項目需要優化的模型計算量首次降低到100M以下,同時比賽也拿到了銅牌(第一次參賽,拉胯的成績,但盡力了)。
後面的時間就是邊實習邊准備開題,順利完成了實習階段的任務,拿到了口頭轉正(可惜AI研究院今年不招人,靠自己重新走流程拿的影像演算法部,權衡了一下,還是想待在自己熟悉且喜歡的組),與nice的同事們告別。
【一波三折】2022年2月~2022年5月
向導師爭取了第二次實習的機會,開始著手准備暑期實習,同時和之前實習的武大同學合作一篇論文。但沒高興多久,上海的疫情就爆發了,幾乎整個上海的實習HC都沒了,與此同時學校疫情封樓,天天牢飯吃到心態爆炸,差點想轉開發(慶幸自己沒轉)。
雖然有了一段大廠實習經歷,但找第二段實習甚至更艱難:收到一堆海筆,只收到了三家面試(某周的周一面了美團,面試官很nice,面試也順利,他還表達了希望我面試通過後早點過去實習,結果周五反手收到個感謝信☺)。磕磕絆絆拿到了第二份offer -- 虹軟的計算機視覺演算法崗實習。
打開網易新聞 查看精彩圖片
【穩中求勝】2022年5月~2022年9月初
第二段實習。這次研究方向是視線檢測,因為在藍廠的實習積累了許多項目經驗,所以無論是搭環境還是上手項目都很快。
我們組所有的實習生每周都會單獨開個周會,可以了解大家的進展,同時還能偷學一些技巧,因此在這邊自己成長的速度很快。和我搭檔的實習生是天大的,我倆都做視線方向,經常一起討論項目中遇到的難點,如我mentor所說,1+1 > 2,無論是實習還是秋招,找個伴共同進步總好過孤軍奮戰。
7月~9月初,工作時間肝項目,下班以後的空閑時間刷題、刷面經,准備轉正答辯,投提前批(演算法提前批卡學校,基本全泡池子),投秋招,基本每天搞到11點才休息(轉正名額有限,不敢做賭狗)。
8月底順利通過轉正答辯,9月初拿到了虹軟為數不多的轉正意向書。
【沖刺終點】2022年9月~2022年10月
收獲的季節。實習結束,導師召回返校,一邊做導師安排的工作一邊搞秋招。
總共筆試了二三十家公司,面了六七家(因為不是985、研究方向有差異,也被拒了蠻多)。最後到手虹綠藍三家offer,於十月中旬塵埃落定。平時經常做RGB圖像演算法,沒想到拿的offer也剛好涵蓋RGB三種顏色 ,或許這就是緣分吧。
需要掌握的技能 硬實力篇
1.基礎知識
入坑演算法崗的基本功。推薦李航老師的《統計學習方法》以及周志華老師的西瓜書。入門深度學習推薦斯坦福《CS231N》課程(在B站上可以找到中文字幕版)。不太推薦一上來啃《深度學習》(花書),對小白不友好,但是後期可以當工具書使用。
確定了自己的研究 / 學習的方向後,可以在各類博客上找到對應方向大牛整理的paper list,選取一些經典必看的論文,並在Github中找到對應的源碼閱讀【一定要看源碼,一定要看源碼,一定要看源碼】,面試的時候,資深的面試官經常會問一些細節問題,而只有你理解了源碼是怎麼實現的前提下,應對這些問題才能游刃有餘。在學習時,要及時總結和整理,將論文里的知識精煉成自己筆記的過程,其實就相當於模擬回答面試官問題的過程。整理的東西多了,就變成的所謂的「八股文」,相較於開發,演算法的面經更靈活,面試的問題也因人而異,一份屬於自己的「八股」很重要,同時它也是實習和秋招面試前最有價值的復習資料。
2.實習
如果導師允許的話,【一定要盡早出去實習,一定要盡早出去實習,一定要盡早出去實習】。實習經歷越豐富、實習公司的層次越高、實習的時間越久,你的競爭力越強。曾經有HR和我說過,CV演算法崗的普通分段同學很少能進流程,如果沒有實習經歷,自己大概率會被淘汰。
PS:實驗室不給實習的同學,也不要灰心,實習不是入職演算法崗的必要條件,但是如果你但凡有機會實習,一定要好好把握。
3.項目
冷知識:在簡歷和面試中把自己的論文以項目的形式描述,面試官會更感興趣。
「如果你發表的不是頂會,那麼我更希望你用項目的形式敘述你的作品。」這是面試時一位面試官的原話。所以在這里,我把自己的論文歸類為項目,且當我把論文以項目的形式更新到簡歷中,後面的面試會問到這部分工作的頻率明顯增加。
很多人覺得自己的項目可能不是那麼出彩,覺得拿不出手。在這里完全可以打消這個顧慮,我們投的又不是天才少年計劃,所以只要能把自己的項目講明白,言之有理,都可以作為一個加分項。在面試前,一定要梳理好自己的項目,例如解決的問題、應用場景、創新點、難點、數據是怎麼處理的、badcase是怎麼優化的、後面還能改進的地方......講項目的時候一定要自信、有條理,建議面試前可以多試講幾次錄個音。
4.比賽
打比賽有兩種策略:
第一種策略:運氣好,碰到了自己熟悉方向的比賽,在比賽中盡可能刷高自己的名次。
第二種策略:只有自己感到陌生的方向(不過也是CV類比賽),用最快的時間上手該方向,然後盡可能深入,爭
㈢ 刷LeetCode對於國內IT企業面試幫助大嗎
就目前的情況來看,國內公司社招面試中,對於對於演算法的考驗越來越多,很多公司會拿leet code的原題用於面試。
根據我的了解,目前國內的中型廠記下的基本上不會考驗演算法題不會哪一道編程題,讓你手寫指示會咨詢你一些項目經驗,包括一些基礎的資料庫類的知識,或者是編程基礎類知識,比如說你用Java開發怎麼會問你spring cloud的spring boot相關知識,還有一些可能會問你高並發,生產問題處理,linux伺服器命令等等,手撕紅黑樹的情況不多。
對於國內的這些外資企業微軟、蝦皮等等,可能會問一些演算法題,但一般都不會特別難。數據結構問鏈表二叉樹,演算法問動態規劃之類的吧,也是min和easy難度。
對於頭部的大廠可能會出一些hard級別的演算法題,或者是改編過的編程題。目前程序員的人數越來越多,所以未來可能會有更多的公司會通過手撕編程題的方式進行面試。
對於校招來說說來的時候呢,是非常有幫助的,聽不起。各大公司的面試題中都會有演算法題,所以必須要通過刷leetcode來提升自己的。有可能你會遇到一些原題。
不管怎麼樣說演算法題都是很有幫助的,有助於提升編碼能力和邏輯能力,可以讓你的編碼能力一直保持一個不錯的水平,因為很多人平時都是curd小子,很多基礎知識都忘記了包括演算法能力。
leetcode上題很多,逐漸你會發現刷題太耗時間,所以建議採用哈夫曼樹規則。高頻題優先,各個tag刷10題以上掌握典型題總結演算法套路,先把觸手放在能掌握的地方。然後再去重點刷貪心和dp,分類好思路和模板。再去牛客搜公司名刷一些該公司面試題,有個底不至於面試沒見過。建議medium為主,easy和hard為輔。
一零言,聊聊IT,談談技術
㈣ 有什麼適合大一計算機專業學生免費的刷題網站
既然大一的同學選擇計算機專業,當然少不了刷題啦!但是有很多刷題網站是免費的,同學們想知道嗎?下面由我來講講吧。
這個網站收錄了很多知名互聯網公司出的演算法題目,相信大一同學很熟悉了,很多同學都在這里刷題,增強對計算機基礎知識掌握。它支持多種編程語言,如:Java、Ptthon、Ruby等。最常做的是演算法題,目前有一千多道的題目。有專門的圖文和視頻講解,方便同學們茶樓補缺。也可以在個人界面查看進展,看自己的學習情況。如果出來工作筆試中,面試官會從這里抽題。刷題過程中全部會了,那麼工作沒有什麼大問題。
以上我列舉了三個計算機免費刷題的網站,同學們看到我寫的推薦後,來收藏夾吃灰~希望同學們有時間使用這三個網站學習計算機相關知識,提高計算機專業能力,祝你們學有所成!
㈤ 面試最常考的 100 道演算法題分類整理
大家好,我是 「負雪明早沖燭」 ,一位用 7 年寫槐毀了 1000 篇 LeetCode 演算法題題解的程序員。歡迎關注。
粉絲常說: LeetCode 演算法題太多了,准備面試該刷哪些題目 ?
我之前根據 LeetCode 上面的點贊量分享過: LeetCode 上最經典的 100 道演算法題 。
這 100 道題目都屬於經典題目了,面試也常考,不過我還是不放心呢,畢竟 經典題 ≠ 面試題 呀!
但如果想知道面試常考的 100 道演算法題的話,需要至少整理 1000 篇面經吧?這個工作量可不小啊!
還好,網上有個開源項目,幫我們做了這件事情,這個項目就是 CodeTop !
這是網站的界面(地址: https://codetop.cc/home ),展示的就是每個面試題目出現的頻度情況,甚至區分了公司和崗位:
這是開源項目的 GitHub 主頁,已經 11.5k star ⭐️ 了:
這個項目中的題目來源是牛客網的面經、網友投票等,而且持續更新中,所以還是比較可靠的。
我對這個項目做了陸明殲整理,分類整理出來面試常考的 100 道演算法題。
在整理之後,我對結果還是有點 驚訝 的!因為一些常見的數據結構與演算法,竟然沒有在常考面試中出現過!
比如前綴和、前綴樹、並查集、圖,這些都沒有出現……
最常考面試題還是很基本的鏈表、二叉樹、動態規劃等等,是不是符合你的認知呢?
強烈建議大家在面試前把這 100 道題目搞懂!
作為寵粉達人,我提供了 3 種方式查看這 100 道題目:
沒有任何套路,直接分享給大家!
在線查看地址: https://www.mubucm.com/doc/7jiBYKCKqet
在線查看地址: https://leetcode-cn.com/problem-list/q3iOID0B/
所有題目的地址如下:
前序遍歷
中序遍歷
層序遍歷
視圖
如果你覺得對你有幫助的話,求贊、求分享、求收藏。你的每一點鼓勵都是對我的最大幫助!
㈥ 非計算機專業考華為od演算法題難不難
華為od演算法題難度中下,更傾向於考驗臨場發揮能力。
華為OD的面試首先會有一輪機考,機考是在牛客網上做編程題。總共三道題,據說是一道簡單兩道中等,總分400分,150分以上就算通過。
OD的機考難度不算特別高,如果經常刷牛客和力扣上的題的話,至少及格肯定是沒問題的。考題的偏好的話,基於自己做的和參考其他的OD考試帖子,感覺比較喜歡考數組和字元串的問題,大家刷題可以著重注意一下這種類型的題!
㈦ 華為會上牛客網上招聘是真的嗎
華為會上牛客網上招聘是真的。機試就在牛客網上做,牛客網有一個華為的題庫,可以提前去做做。我的建議是做一下前面的十幾題熟悉一下輸入輸出就好了。題目的話其實我不太記得了,重點是字元串,我考了兩題字元串,要熟悉字元串的基本操作。然後第三題就是一題比較普通的DFS,可以去LeetCode把各種常見的演算法都稍微了解一下,做一兩道例題,通過應該不難的。華橘早為正式招聘的要求是一樣的,可以網路一下,當時在桐伍脊知乎看到一個回答,大概了解一下華為喜歡哪些性格就好。最重要的還是不要前後矛盾。所以局滲,華為會上牛客網上招聘是真的。
㈧ 牛客網刷演算法總結
容器:vector map set list
演算法:回溯法(dfs),分支界限法(bfs),貪心演算法,分治法,動態規劃
容器排序API:sort reverse find count
字元串操作API:find rfind find_first_of find_last_of find_first_not_of find_last_not_of
其他:查表法,快排,深度優先搜索dfs,廣度有限搜索bfs
1、getline 最後需要判空,如果是輸入一個,請用cin
2、str.append(8-str.size(),'0') ,後面增加幾個『0』
3、str.substr(0,8) 0開始截取8個,str.substr(8)8開始截取剩餘
4、'a'比'A'大32
5、math.h sqrt 開方
6、int(a+0.5)
7、iimap[key] += value map->first << " " << map->second
8、num=num*10+n%10
9、set不重復數組
10、>> 位移
11、emplace_back()相比push_back()少調用一次拷貝構造函數
12、instr.rfind('\\')
13、帶路徑文件名稱,行號,以空格隔開 可以這樣cin >> instr && cin >> row
14、合唱隊,動態規劃
15、兄弟單詞,一起排一次序,比較相等
16、素數伴侶,男女配對,匈牙利演算法(二部圖,交錯路徑,增廣路徑)
17、加解密用查表法
18、兔子演算法,a+b+c
19、數組也可以用sort排序,如sort(nums,nums+26)
20、nodes.erase(iter)刪除這個位置的數據
21、計算字元串距離用動態規劃
22、插入排序一定要back
23、vector<vector<int>> c1(x,vector<int>(y,0));
24、#include<bits/stdc++.h>
25、str.erase(str.begin()+i1, str.begin()+i2+1); str.insert(str.begin()+i1, 'A'+c.size()-1);
26、潤年( (year%4==0&&year%100!=0)||year%400==0)
27、尼科徹斯定理 數學公式直接可以推出來首項是m*m+1-m,有m項
28、find rfind 可以查找子串,find_first_of find_last_of find_first_not_of find_last_not_of 則不能
29、int index = str1.find(str);
㈨ 華為牛客網的筆試難嗎
不難。只要上學的時候認真學習,編碼能力扎實,即使沒刷過LeetCode沒特地學過演算法也一樣能做出來,華為牛客網的筆試不難。牛客網明頌是互聯網求職神器,C++、Java、前端、喊孫產激滲鄭品、運營技能學習、備考、求職題庫。
㈩ 面試遇到演算法題怎麼辦,都不會
科班出身還是半路出家?半路出家就選別這類崗位。
計算機科學專業的基礎,外加演算法競賽相關的培訓和實戰,不算基礎,培訓過程也至少要耗去一兩年,所以要算能不能和值不值。真正需要演算法能力高超的崗位薪水好,但是,少之又少,競爭慘烈,985本專業畢業生能搶上的都屬於鳳毛麟角。