起因
2021-03-21,晚上八點到十點,我參加了騰訊的第一輪筆試,方向為前端/UI方向,經過了兩個小時的答題,五道題最終我做出來三道題,我對我自己這次筆試的結果是不滿意的,在下面我簡單講解一下面試的五道題,自己失利的原因,以及從這次面試中悟出的道理,
想寫一篇復盤文章,但是太多了,怕自己一直拖下去一直寫不完,就先寫寫自己的新的吧,
小編之前發布有關前端面試的文章,點擊標題即可閱讀嘍
標題:Vue面試題
標題:前端面試之問到promise
標題:怎樣判斷面試者是否有扎實的前端基礎
筆試流程分享
這次騰訊筆試在牛客網進行,時長為兩個小時,本次筆試為五道編程題,在考試前,需要提前登錄確認考生的身份,以及檢查你的攝像頭等等,然后前一個誠信保證書,就可以等待考試了, 考試開始,他會先給你兩道例題,讓你明確如何在acm模式中自行的輸入輸出資料,兩個小時時間到了,就會自動排隊提交試卷,
建議大家提前登陸熟悉一下流程,例如acm模式如何提交代碼,然后代碼是可以復制到本地除錯的,如何復制到本地除錯等等,需要自己提前熟悉一下,
筆試復盤
第一題:實作無限滾動
DOM和javascript知識綜合題
代碼挖空補全
題目:要求補全代碼,當div滑動條離最下面距離小于100px時,則插入一個元素進去,實作無限滾動,
question1.vercel.app 我實作的答案,
做題感受
這道題不算很難,但是在寫下面的代碼時候,因為不太熟悉scrollTop,scrollHeight,clientHeight等等,所以最后代碼一直過不了,瀏覽器還會卡住,可能和我的實作與判題系統有關,然后一開始做題很慌,能犯的錯誤都犯了,
const scrollTop = container.scrollTop;
const contentHeight = container.scrollHeight;
const height = container.clientHeight;
const shouldTrigger = contentHeight - height - scrollTop <= distance
復制代碼
我建議將如果牛客網的代碼不太好除錯就立刻復制到本地除錯,
第二題:一個正整數n最少多少步才能變為0
他可以做的變換:
- n - 1
- 如果n是2的倍數:n / 2
- 如果n是3的倍數:n / 3
資料范圍:
- count:1到10000
- n:1到2的31次冪
輸入示范
2
10
10
復制代碼
輸出示范
4
4
復制代碼
我的答案:
- 答案1不能直接運行,因為是從標準輸入流輸出流讀取的資料(瀏覽器),
- 函式版本可以直接運行,
動態規劃dp 剪枝
這道題我第一眼看上去以為是一道簡單的動態規劃,但我筆試時一直沒有通過,
現在想明白了,這道題是一道簡單的動態規劃,只是需要剪枝,我們可以觀察到n的最大值可以為2的31冪,所以如果我們直接從頂向下不剪枝肯定是會爆堆疊的,(話說為什么我筆試的時候也看到資料范圍了,為什么沒有想到呢)當然這道題也不能自底向上了,因為資料量太大了,
我們自頂向下,然后使用備忘錄記錄資料,如果是2的倍數或者3的倍數就不用計算n-1的情況了,
第三題:01背包?
有一個行數r,列數c的矩陣,選擇矩陣中的值,使列相加為c的情況下,使值相加最大,每行只能選擇一次,
第四題:計算運算運算式的值
輸入示范
"1+4/2-1"
復制代碼
輸出示范
2
復制代碼
這題我認為他是在考javascript的api(eval),因為規定只能用javascript答題,
所以我直接eval運行了,
第五題:將中文數字字串轉換成數字
資料范圍:不超過1億
考點:規律的發現
-
輸入一:“一千三”
輸出一:1300
-
輸入二:“一千三百零一”
輸出二:1301
-
輸入三:“十二”
輸出三:12
-
輸入四:“一千三百二十一萬一千三百二十一”
輸出四:13211321
這道題不考資料結構,就考能不能發現規律,解決問題,我考試前看見過這道題,但是沒有細看他們是怎么解答的,
最終經歷千辛萬苦寫出來了,
這里是答案
思路:
- 我們要將文字轉換成數字,所以需要一個映射關系,
- 十百千萬都是單位,所以也要映射一下,注意零的思考,零我把它當作單位而不是數字(需要特殊處理)例子:一千三百零一,
- 特殊情況的考慮:例如最后一個數沒有單位,一千三,
- 資料范圍在一億以內,所以萬這個單位可以特殊化,出現萬就把轉換中的結果乘10000.
由這次的騰訊面試,總結了一份騰訊面試題資料,小伙伴需要的請自取,點擊這領取騰訊前端面試題


總結
我標題取的是人生需要一點deadline,我之所以這樣說,因為我筆試的時候實在是太緊張了,照理說這5個題就中間第三題會難一點,但是最后2個小時我寫出來了4個題,我想和我平時訓練不足有關,我這里說的訓練不足,即指自己題刷的比較少,更指自己做leetcode的時候沒有為自己設定deadline,平時做題慢悠悠的,一直在除錯,實在做不起了還可以看看他們的題解,ac完了代碼我還會去把自己的代碼化簡,但這些都不是最重要的,最重要的是有一個和面試最相似的環境,可以在最短的時間內想出做題的思路,能最快速的,最清晰的寫出能夠ac的代碼,而不應該關心這個式子是不是已經化簡到最簡了,
因此我們要為自己設定deadline,平時后緊張起來,到自己去面試的時候,到這個真實的環境,就不這么緊張了,例如leetcode有模擬面試功能,大家可以去模擬面試一下,然后面試都是在牛客上進行,所以不能一直依賴leetcode,也要在牛客網上訓練(雖然這個平臺不太好用,leetcode好用),不然到自己面試的時候像我一樣平臺都不熟悉就死翹翹了,
喜歡這篇文章的小伙伴們請點贊+評論支持下哦,也祝在找作業在面試的小伙伴們順順利利,旗開得勝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/278882.html
標籤:其他
