---
# System prepended metadata

title: info2022-homework2

---

# info2022-homework2

## 檢討一 : [心宿二](https://hackmd.io/@sysprog/SkfAXAtGs)
LeetCode Problem: [226. Invert Binary Tree](https://leetcode.com/problems/invert-binary-tree/)

[影片(漢)](https://youtu.be/-mT27NHWI54)

- Interviewer
    1.[0:02](https://youtu.be/-mT27NHWI54?t=2) 在中文中避免使用「面試官」這個詞，Interviewer與Interviewee應是平等地位。 
    2.[0:06](https://youtu.be/-mT27NHWI54?t=6) 第一次聽到的「回傳它的樹根」會覺得有點模稜兩可，使用「回傳它的樹根節點」似乎比較精確。
    3.[0:53](https://youtu.be/-mT27NHWI54?t=53) Interviewee敘述是說「也就是把Root節點的左、右子節點交換」，但應該是所有節點的左、右子節點交換，Interviewer應該要修正他。
    4.[5:43](https://youtu.be/-mT27NHWI54?t=343) 「分析複雜度」應比「介紹複雜度」好。
    5.[10:12](https://youtu.be/-mT27NHWI54?t=612) 有特別的followup蠻好的。


- Interviewee
    1.[1:20](https://youtu.be/-mT27NHWI54?t=80)  Interviewer從沒有提過Full binary tree，舉完例子以後卻想詢問Interviewer「除了Full binary tree以外」的case，有點多餘。Interviewee可以直接確認 : 是不是將Binary tree中所有Node的左子樹與右子樹互換。
    2.[1:50](https://youtu.be/-mT27NHWI54?t=110) 在REACTO中的E應該舉一些Corner case，例如：「input的節點會不會為空」、「若只有一個節點，便是回傳該節點嗎？」。
    3.[4:12](https://youtu.be/-mT27NHWI54?t=252) 應是「Node的定義」非二元樹的定義。
    4.[5:50](https://youtu.be/-mT27NHWI54?t=353) 可以直接說「節點交換成本的複雜度是常數」，後面那串有點多餘。
    5.[6:50](https://youtu.be/-mT27NHWI54?t=410) （我也不是很確定）一個節點便會宣告一個暫存變數，這樣空間複雜度(Without function call stack)應該是$O(N)$非$O(1)$。
    6.[7:22](https://youtu.be/-mT27NHWI54?t=442) 樹的高度的英文應該是height of the tree，非tree height。

## 檢討二 : [小魚-Fish](https://hackmd.io/@sysprog/BJfbe3m7j)
LeetCode Problem: [21. Merge two sorted lists](https://leetcode.com/problems/merge-two-sorted-lists/)

[影片(漢)](https://www.youtube.com/watch?v=woM2FpM_BRc)
- Interviewer
    1.[0:02](https://youtu.be/woM2FpM_BRc?t=2) 在中文中避免使用「面試官」這個詞，Interviewer與Interviewee應是平等地位。
    2.[0:03](https://youtu.be/woM2FpM_BRc?t=3) 「廢話不多說」，感覺有點不正式。
    3.[0:15](https://youtu.be/woM2FpM_BRc?t=15) 敘述題目不清楚，沒有說明linked list中存放的元素型別是什麼，以及list長度與val的範圍。
    4.[1:00](https://youtu.be/woM2FpM_BRc?t=60) 前面說由大到小排序，這時interviewee舉出錯誤的例子時，應該要打岔。
    5.[7:56](https://youtu.be/woM2FpM_BRc?t=476) Interviewee僅僅是說寫得太長，並且丟出一個請使用Recursive作法，在整個面試過程後，應該也不能很好的了解這個Interviewee的程度。


- Interviewee
     1.[0:18](https://youtu.be/woM2FpM_BRc?t=18) 並沒有做REACTO中的Repeat部分。
     2.[0:21](https://youtu.be/woM2FpM_BRc?t=21) Interviewee 只有說排序linked list ，應該要進一步確認是整數、浮點數，或是字母排序(alphabetical order)等等。
     3.[0:21](https://youtu.be/woM2FpM_BRc?t=21) 若是造著LeetCode出題的話，應該是前面[0:10](https://youtu.be/woM2FpM_BRc?t=10)時interviewer說由大到小口誤了（應是由小到大），但若發生在現實，配合前面並沒有確認題目細節等等，這樣的表演很有在背答案的感覺。
     4.[0:22](https://youtu.be/woM2FpM_BRc?t=22)~[0:42](https://youtu.be/woM2FpM_BRc?t=42)都在打字，有點乾，也許可以邊打邊念：「有一個Linked list為 1 -> 3 -> 5」等等，也許會更流暢一點。
     5.[1:00](https://youtu.be/woM2FpM_BRc?t=60) REACTO的E，舉例時應舉一些corner case，例如任一邊是空list等等，可以展現分析問題的能力。
     6.[1:08](https://youtu.be/woM2FpM_BRc?t=68)這邊又口誤，說成由大到小，蠻可能被質疑是背題目的。
     7.[2:33](https://youtu.be/woM2FpM_BRc?t=143) 與 [3:44](https://youtu.be/woM2FpM_BRc?t=224)等等感覺不用刻意多一行空白，可以直接接在if(condition)後面，也許更符合一般的coding style。
     8.整體在實作的時候看起來會有點不順暢，也許是因為沒有邊講邊打字。


## 檢討三 : [克拉克-Clock](https://hackmd.io/@sysprog/Hyu4Mqlzo)
LeetCode Problem: [136. Single Number](https://leetcode.com/problems/single-number/)

[影片(漢)](https://youtu.be/hVamnbLs67w)

整體講話的咬字很清晰清楚，感覺語速可以再快一點。
- Interviewer
    1. 表達清晰，口條流暢！
    2. [0:20](https://youtu.be/hVamnbLs67w?t=20) 講解題目時，沒有說明是什麼型別的陣列。

- Interviewee
    1. [0:50](https://youtu.be/hVamnbLs67w?t=50) 沒有確認陣列型別，若在現實面試中，可能會看起來有點像是背答案，或是已經做過此題目很多次。
    2. [6:40](https://youtu.be/hVamnbLs67w?t=340) std::sort()的空間複雜度好像不是$O(1)$，[StackOverflow](https://stackoverflow.com/questions/68146330/what-is-the-space-complexity-of-stdsort-in-the-c-standard-template-library?noredirect=1&lq=1)。
    3. [7:41](https://youtu.be/hVamnbLs67w?t=461) 直接講作法，感覺有一點點刷題的感覺，那在上一個Approach時，也許可以直接說出有更好的作法，不用完成上面那一部分。

## 檢討四 : [盤子-Plate Man](https://hackmd.io/@sysprog/S19Up-BXi)
LeetCode Problem: [1528. Shuffle String](https://leetcode.com/problems/shuffle-string/)

[影片(漢)](https://youtu.be/Fe66npI4yq8)

- Interviewer
    1. 感覺可以直接講解題目，不用請他看。
    2. [1:52](https://youtu.be/Fe66npI4yq8?t=112) 不清楚Interviewer講什麼「那可以幫我說看看嗎，看一下你寫code的樣子」


- Interviewee
    1. [0:26](https://youtu.be/Fe66npI4yq8?t=26) 如果Interviewer請Interviewee先看題目，感覺可以唸題目等等，讓整個流程感覺更順更不乾。
    2. [0:30](https://youtu.be/Fe66npI4yq8?t=26) 看完題目卻問可不可以再請Interviewer講解題目，感覺有點怪。
    3. [2:15](https://youtu.be/Fe66npI4yq8?t=135) - [2:35](https://youtu.be/Fe66npI4yq8?t=155) 中間的停頓有點奇怪，很像是忘記答案去看小抄的感覺。
    4. Coding一行一行打，感覺有點不真實。

## 檢討五 : [歹丸核-Jim Carry](https://hackmd.io/@sysprog/ryO4EclGo)
LeetCode Problem: [104. Maximum Depth of Binary Tree](https://leetcode.com/problems/maximum-depth-of-binary-tree/)

[影片(漢)](https://youtu.be/4ATv_vP5riM)


- Interviewer
    1. 題目敘述講的很清楚，沒有遺漏什麼。
    2. [1:52](https://youtu.be/Fe66npI4yq8?t=112) 
    3. 沒有follow up問題，似乎沒有辦法透過這次面試去認識interviewee

- Interviewee
    1. 沒有做REACTO中的R跟E，也許可以舉出幾個Corner case也展現頗析題目的能力
    2. Interviewee的錄音設備有蠻多電子音、雜音與爆音，雖然聽得懂在講什麼，但可能無形中被扣分。


