騰訊前端筆試心得:人生須要一點deadline

原由

2021-03-21,晚上八點到十點,我參加了騰訊的第一輪筆試,方向爲前端/UI方向。通過了兩個小時的答題,五道題最終我作出來三道題,我對我本身此次筆試的結果是不滿意的。在下面我簡單講解一下面試的五道題,本身失利的緣由,以及從此次面試中悟出的道理。javascript

想寫一篇覆盤文章,可是太多了,怕本身一直拖下去一直寫不完,就先寫寫本身的新的吧。前端

小編以前發佈有關前端面試的文章,點擊標題便可閱讀嘍
標題:Vue面試題
標題:前端面試之問到promise
標題:怎樣判斷面試者是否有紮實的前端基礎java

筆試流程分享

此次騰訊筆試在牛客網進行,時長爲兩個小時。本次筆試爲五道編程題。在考試前,須要提早登陸確認考生的身份,以及檢查你的攝像頭等等,而後前一個誠信保證書,就能夠等待考試了。 考試開始,他會先給你兩道例題,讓你明確如何在acm模式中自行的輸入輸出數據。兩個小時時間到了,就會自動排隊提交試卷。面試

建議你們提早登錄熟悉一下流程,例如acm模式如何提交代碼。而後代碼是能夠複製到本地調試的,如何複製到本地調試等等,須要本身提早熟悉一下。編程

筆試覆盤

第一題:實現無限滾動

DOM和javascript知識綜合題api

代碼挖空補全promise

題目:要求補全代碼,當div滑動條離最下面距離小於100px時,則插入一個元素進去,實現無限滾動。瀏覽器

question1.vercel.app 我實現的答案。數據結構

作題感覺

這道題不算很難,可是在寫下面的代碼時候,由於不太熟悉scrollTopscrollHeight,clientHeight等等,因此最後代碼一直過不了,瀏覽器還會卡住。可能和個人實現與判題系統有關。而後一開始作題很慌,能犯的錯誤都犯了。app

const scrollTop = container.scrollTop;
const contentHeight = container.scrollHeight;
const height = container.clientHeight;
const shouldTrigger = contentHeight - height - scrollTop <= distance

複製代碼

我建議將若是牛客網的代碼不太好調試就馬上覆制到本地調試。

第二題:一個正整數n最少多少步才能變爲0

他能夠作的變換:

  1. n - 1
  2. 若是n是2的倍數:n / 2
  3. 若是n是3的倍數:n / 3

數據範圍:

  • count:1到10000
  • n:1到2的31次冪

輸入示範

2
10
10
複製代碼

輸出示範

4
4
複製代碼

個人答案:

  1. 答案1不能直接運行,由於是從標準輸入流輸出流讀取的數據(瀏覽器)。
  2. 函數版本能夠直接運行。
動態規劃dp 剪枝

這道題我第一眼看上去覺得是一道簡單的動態規劃,但我筆試時一直沒有經過。

如今想明白了。這道題是一道簡單的動態規劃,只是須要剪枝。咱們能夠觀察到n的最大值能夠爲2的31冪,因此若是咱們直接從頂向下不剪枝確定是會爆棧的。(話說爲何我筆試的時候也看到數據範圍了,爲何沒有想到呢)固然這道題也不能自底向上了,由於數據量太大了。

咱們自頂向下,而後使用備忘錄記錄數據。若是是2的倍數或者3的倍數就不用計算n-1的狀況了。

第三題:01揹包?

有一個行數r,列數c的矩陣。選擇矩陣中的值,使列相加爲c的狀況下,使值相加最大。每行只能選擇一次。

第四題:計算運算表達式的值

輸入示範

"1+4/2-1"
複製代碼

輸出示範

2
複製代碼

這題我認爲他是在考javascript的api(eval),由於規定只能用javascript答題。

因此我直接eval運行了。

第五題:將中文數字字符串轉換成數字

數據範圍:不超過1億

考點:規律的發現
  1. 輸入一:「一千三」

    輸出一:1300

  2. 輸入二:「一千三百零一」

    輸出二:1301

  3. 輸入三:「十二」

    輸出三:12

  4. 輸入四:「一千三百二十一萬一千三百二十一」

    輸出四:13211321

這道題不考數據結構,就考能不能發現規律,解決問題。我考試前看見過這道題,可是沒有細看他們是怎麼解答的。

最終經歷千辛萬苦寫出來了。

這裏是答案

思路:

  1. 咱們要將文字轉換成數字,因此須要一個映射關係。
  2. 十百千萬都是單位,因此也要映射一下,注意零的思考,零我把它看成單位而不是數字(須要特殊處理)例子:一千三百零一。
  3. 特殊狀況的考慮:例如最後一個數沒有單位,一千三。
  4. 數據範圍在一億之內,因此萬這個單位能夠特殊化。出現萬就把轉換中的結果乘10000.

由此次的騰訊面試,總結了一份騰訊面試題資料,你們須要的請自取。點擊這領取騰訊前端面試題

總結

我標題取的是人生須要一點deadline,我之因此這樣說,由於我筆試的時候實在是太緊張了。照理說這5個題就中間第三題會難一點,可是最後2個小時我寫出來了4個題。我想和我平時訓練不足有關。我這裏說的訓練不足,即指本身題刷的比較少,更指本身作leetcode的時候沒有爲本身設置deadline。平時作題慢悠悠的,一直在調試,實在作不起了還能夠看看他們的題解。ac完了代碼我還會去把本身的代碼化簡,但這些都不是最重要的。最重要的是有一個和麪試最類似的環境。能夠在最短的時間內想出作題的思路,能最快速的,最清晰的寫出可以ac的代碼。而不該該關心這個式子是否是已經化簡到最簡了。

所以咱們要爲本身設置deadline,平時後緊張起來,到本身去面試的時候,到這個真實的環境,就不這麼緊張了。例如leetcode有模擬面試功能,你們能夠去模擬面試一下。而後面試都是在牛客上進行,因此不能一直依賴leetcode,也要在牛客網上訓練(雖然這個平臺不太好用,leetcode好用)。否則到本身面試的時候像我同樣平臺都不熟悉就死翹翹了。

喜歡這篇文章的小夥伴們請點贊+評論支持下哦,也祝在找工做在面試的小夥伴們順順利利,旗開得勝!

相關文章
相關標籤/搜索