貢獻者: 貓貓-Haku
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
source - Rachel & Jun
模擬面試錄影(漢)
面試過程
- 👨💼 是 interviewer
- 👨💻 是 interviewee
- 👨💼
你好我是負責本次面試的人員。
如果沒有什麼問題,我們就直接開始今天的面試吧。
- 👨💻
我沒有任何問題,隨時都能開始。
- 👨💼
那麼首先想請問您一個問題,給定兩個非空陣列 nums1, nums2,裡面含有unique digits,1~9,請你找出最小的數字,兩個陣列都需要至少一個digit出現在這個數字中。這裡有個例子
nums1 = [4,1,3], nums2 = [5,7]
答案是15,1出現在nums1,5出現在nums2,並且這是最小的數字。
- 👨💻
好的,所以我會有兩個非空陣列 nums1, nums2,然後要找出一個最小數字,那假設
nums1 = [1,2,3], nums2 = [2,3,4]
答案是2,因為2同時出現在兩個 array 中,並且這是最小的數字,這樣對嗎?
- 👨💼
對
- 👨💻
那我想法是,首先走過一遍兩個 array,紀錄出現的 digit,如果有 digit 同時出現,那就回傳最小的同時出現 digit ,如果沒有就回傳nums1最小 digit 結合 nums2 最小 digit的數字。那我開始寫程式碼。
- 👨💻
時間複雜度是 O(n), n = max(nums1.length, nums2.length)
空間複雜度是 O(1), count digit 只會有1~9,不會隨n變大
我們以這個範例測試
nums1 = [4,1,3], nums2 = [5,7] ans = 15
[0,0,0,0,0,0,0,0,0,0], min1 = 9, min2 = 9
[0,0,0,0,1,0,0,0,0,0], min1 = 4, min2 = 9
[0,1,0,0,1,0,0,0,0,0], min1 = 1, min2 = 9
[0,1,0,1,1,0,0,0,0,0], min1 = 1, min2 = 9
[0,1,0,1,1,1,0,0,0,0], min1 = 1, min2 = 5
[0,1,0,1,1,1,0,1,0,0], min1 = 1, min2 = 5
- 👨💼
好的,你做得很好,那如果不保證 digit 是 unique 要怎麼改?
- 👨💻
他評
interviewer
interviewee
- 缺少REACTO中的repeat
- word有自動大寫的問題,可以換其他文書軟體
- 撰寫程式時可以多解釋程式內容
- 1:20: 「用前面的元素把它蓋掉」應該是「用後面的元素把前面的蓋掉」
- 1:55: character 發音不對
Interviewer
Interviewee
- 英文講得很好
- 打字速度很快,排版整齊
- 對問題的提問很全面
- 寫程式時會一邊寫一邊解釋程式,很棒
- 第一題 two pointer 講解很清楚,用 ^ 在 array 的下一行代表pointer是個好方法
- 第三題寫程式前先用註解寫大綱很清楚的表達了程式內容
Interviewer
- 18:09: 提到 star graph 可以講解 star graph 的定義
Interviewee
- 17:16: 這邊有一段無聲的時間,檢查程式可以用舉例測試
- 00:52: 講解解法可以多花一點時間,不用直接開始寫程式,這之後有很長一段的暫停,看起來就像沒想好。
- 05:43: 沒解釋 pointer 怎麼在 array 中移動
- 05:54: 能更詳細解釋為何有重複就一定有cycle
Interviewer
Interviewee
Interviewer
Interviewee
- repeat 問題的時候可以把問題打出來
- 可以增加 REACTO 階段的 Testing
收穫
- 自己的英文口說要加強
- 不要有一段埋頭打程式的時間,可以說一點現在打的程式作用
- 打程式前可以多更面試官討論解法
- repeat 問題的時候把問題打出來
- 用 ^ 在 array 的下一行代表pointer是個好方法
第四次作業-他人評論-01
Interviewer
- 整部影片的聲音都有點小聲
- 影片前半在講解題目的那邊互動偏少,只有講解題目
- 給題目的時候可以試著包裝題目而不是直接給題目,例如 : 公司會用陣列去儲存員工偷懶時數等等
Interviewee
- 大部分都有邊coding邊講解
- 12:10這裡面試者有因應面試官的問題改出來,並且還有再優化(int改成bool)
- 3:55有點小murmur,但我覺得是好的,這個讓我感覺在快速檢查自己程式有沒有錯XD,順便讓自己想一下接下來的code
第四次作業-他人評論-02
- Interviewer:
- 優點:
- 面試官此時說明題目,除了邏輯清楚、口齒清晰,也提供實際例子方便面試者理解題目的要求。
- 缺點:
- 此時直接使用 LeetCode 原題(LC2605),未做適度變形。例如,題目可以變為「公司尾牙舉辦抽獎活動,總共有兩個箱子,分別給男女員工投入自己的幸運號碼,最小的數字可以獲得特別獎…」。
- 我認為從影片的一開頭其實interviwer的聲音顯得比較有氣無力,不是很能聽清楚想要表達什麼。
- Interviewee:
- 優點:
- 面試者能夠迅速理解題目,並且想到一個「edge case」,此時若有兩個陣列共享一個數字,其輸出結果可能會是個位數。
- 實作程式碼的過程中,同時向面試官口頭敘述自己思考的點。除了方便面試官理解,也避免實作過程中枯燥乏味。
- 測試程式碼的過程中,面試者列出所有資料在不同時間點的演化過程,面試官此時一目瞭然。
- 缺點:
- 確認題意及特殊例子後,面試者此時最好等面試官給予意見反饋,始可開始實作程式。
- 面試者打錯字,此時應該是 length 而非 lenght。
- 其他意見: