1. 程式人生 > >2018年12月位元組跳動實習生校招筆試題目

2018年12月位元組跳動實習生校招筆試題目

2018年12月位元組跳動實習生校招筆試題目總結

這次筆試只有三道題目,先要求寫出解題思路,然後再寫出程式碼
筆試時間為:1個半小時


1.給出一個年月日,判斷該天是當年的第幾天

  • 水題
  • 注意判斷leap year,(year%4==0 && year%100!=0) || (year%400 == 0)

2.找出陣列中出現次數超過一半的數字

  • 經典面試題
  • 要求:演算法複雜度越低越好
  • O(n)演算法:
    • 在遍歷陣列的時候儲存兩個值:一個是陣列中的一個數字,一個是次數。
    • 當我們遍歷到下一個數字的時候,
    • 如果下一個數字和當前我們儲存的數字相同,則次數加 1;
    • 如果和當前我們儲存的數字不同,則次數減 1;
    • 當次數減到 0 的時候,我們將儲存的數字改為當前遍歷所處的位置,並將次數更改為 1。

3.一筆畫問題(哈密爾頓圖)

1

  • 找出一條道路,遍歷所有的結點
  • 圖的範圍2 <= n,m <= 10
  • 哈密爾頓迴路是NP-hard問題,但是這次規模較少,可以用深度遍歷解決