1. 程式人生 > >【機試】2018最新 今日頭條(位元組跳動)心得

【機試】2018最新 今日頭條(位元組跳動)心得

本次面試

今天又一次進行了今日頭條的機試題目,僅僅一週的刷題(30道左右的python3 leetcode)。已經感覺不到他們的演算法題有多麼難了。
當然,也可能是人家調整了題目的難度。這次的機試題目讓我感受到了一點點智力題填空題的壓力,因為花的時間更多了。

總結

總的來說,在找工作一年前提前筆試兩次收穫還是很多!
從一些做得不好的地方吸取經驗則更為寶貴!

  1. 端正自己的態度,認真準備,全力以赴!沒有想象的那麼難,不要看不起自己……
  2. 只要刷一到兩遍leetcode(python3 / C++),我相信這些演算法題都不是什麼事情!
  3. 對於不同的公司,還是要提前找一下他們不同的面試側重點,OJ測試環境(提升機試時候的做題效率)
  4. 恢復往日的激情,按照最好的公司的要求來提升自己!不要給自己設限!

OJ&程式設計題

本次面試的時候,因為自己的漫不經心,沒有提前調查好OJ怎麼用,沒有提前準備程式設計環境,都給自己帶來了不少的麻煩。
查找了一些資料,總結一下。

  1. 首先,最重要的。leetcode刷題,不通過的時候,會給你出錯的例項。這樣能讓你迅速的找到出錯的邊界條件。然而,企業機試的時候並不會這樣!完全是盲調,自己去思考邊界條件。
  2. 據說企業後期會在面試的時候看程式碼,良好的程式設計風格一定會為自己加分,不要太過隨意。
  3. 平常在刷題的時候就應該按照有時間限制的模式,給自己一點緊迫感,不管什麼題。在一個小時必須給出暴力解法。可以後期反思優化程式碼。

程式設計題的大坑
OJ平臺的使用
根據以上資料,OJ的一些使用細節總結如下:

  1. 輸入輸出(都是標準的向螢幕輸入輸出,而不是return一個值)
    1. 輸入
      1. 單例輸入
      2. 知道輸入具體的組數(可控迴圈次數)
      3. 不知道究竟輸入多少組(while 迴圈到底)
    2. 輸出
      1. 注意輸出答案要不要帶上cases數
      2. 注意輸出的cases之間要不要空行(注意最後一個cases後面能不能有空行?)
      3. 常見的OJ狀態,格式錯誤很多就是由於輸出細節沒有處理好。
      4. 也就是說,我們只能配置好本地的程式設計環境,觀察一些中間過程的輸出,放在OJ上是萬萬不可的。
    3. 在程式碼中如果有集合之類的結構,記得在迴圈cases的時候清空,隱形大坑。
  2. 關於語言
    1. 雖然說現在OJ筆試都可以選擇自己擅長的語言,但是更推薦用C++。因為程式碼執行更加的高效。
    2. 關於cin cout和scanf printf。做題的時候儘量使用scanf printf。因為cin、cout比scanf printf慢20倍左右!
  3. 關於演算法表現
    1. 記憶體爆炸(想辦法減少無謂的中間變數)
    2. 執行超時(對於C++來說,一秒鐘系統演算法量級是不足1e8,其它語言要在效率上第幾倍。所以我們在構建思路的階段就可以考慮時間複雜度。不要實現一個低效的演算法來浪費時間。)

下場面試

根據域名來看,過幾天的創新工場筆試用的是的傳智播客的OJ系統……
為什麼選這家公司的環境呢?因為李開復老師是他們的投資人之一啊!
居然推薦python3環境。但是吸取經驗,提前想檢視下人家的OJ是如何運用的。
但沒有找到,偶然間找到了一些常見的非技術面試問題,記錄一下,以後面試的時候,來提前想一下,聊勝於無吧。

考什麼,怎麼考?主考官透露說“題目都是輕鬆、有趣、強調動手能力和開放思維的問題。具備基本數學技能,基本程式設計能力,對技術有強烈的好奇心,還懂得活學活用的同學,都能得高分 。”
DeeCamp是一個注重動手能力的AI實戰營,DeeCamp的線上筆試也將和你參與過的考試有些不一樣,非常期待各位同學用自己的智慧向我們呈現光芒四射的答卷。
時間只有100min?期待ing~