
Karat的面試官是全球外包的,主打一個時間靈活,很多人比如我會選晚上或者周末的時間面試。
Karat sde 面試 的一點經驗:請自行在karat環境下訓練,和leetcode不一樣,這裡的testcase需要自己寫。當然題目中可能已經準備好testcase。那種需要復雜輸入的不會考,比如二叉樹,leetcode都是幫你讀入testcase然後自動調用solution,而這裡不可能那樣做。數組、字符串、hash Map是考察重點。
karat sde 面試 真實分享
Code Question 1

題目要求判斷給定的二位數組中的元素是否符合每行與每列的特定規則。
思路
就是兩個遍歷二維數組,只要有任意一行或一列不符合要求,就返回 False;如果所有行列都通過驗證,返回 True。
題目難度不高,不關注算法複雜度,能過所有測試就行。
Code Question 2

題目意思是你有若干人要去露營地,其中只有 2 個人有車,分別從不同的起點出發。
道路是線性的有向鍊錶結構(無環、無岔路)。
每輛車沿著道路前進(每條邊有行駛時間),
途經每個地點時會接上住在那裡的朋友。
思路:
這題其實是一個最短路徑覆蓋問題,但由於路線是線性的、無分支,因此題目可以簡化為:對每個地點,計算兩輛車到達的時間,取較早的一輛接上對應的朋友。
# TC: O(n) = max(len(list), len(products)) = MAX(m, n) =
# SC: O(n) = products len, depts len = max(m, n)
def shopping(products, shopping_list):
# dict
product2dept = {product: dept for product, dept in products}
# calc original visits
original_visits = 0
prev = None
for item in shopping_list:
curr = product2dept[item]
if curr != prev:
original_visits += 1
prev = curr
# optimal visits
depts = set()
for item in shopping_list:
depts.add(product2dept[item])
# output diff
return original_visits - len(depts)
# print(shopping(products, list1))
# print(shopping(products, list2))
# print(shopping(products, list3))
# print(shopping(products, list4))
# print(shopping(products, list5))
ProgramHelp 平時會幫學生全程mock,coding、八股、系統設計都可以面試輔助,代面試。有了我們的支持,Karat / Google / Amazon / Microsoft / TikTok 的 OA 和 VO 都能穩拿。