看板 Oversea_Job 關於我們 聯絡資訊
大家好, 今天phone interview某間大公司的小 entry level Software developer. 考到一個問題...想分享出來且尋求答案. == 給數字 5, 5, 7, 12, 3, 5 如何找出並印出裡面是兩個和 sum = 10的數字組(pair) 他給的printpair 的 output是 55 55 73 55 (但是我後來想 應該有少給我37...) == 我一開始沒有想法 但是時間壓力 就直接先給他直觀的做法 兩個for loop 檢查, 第一次迴圈 用10-5 = 5 去找數組裡其他的5 找到就印出 2nd 10 - 5 = 5 去找其他的5 3nd 10 - 7 = 3 去找其他的3 ... 這樣他說可以, 但是希望能更好. 我想了想 想不太出來請他能提示 他說: 想想為何我剛剛問你比較 link list, binary tree, 和hash table. 我直覺是要用hashtable去找(他好像也認同我用hashtable) 但是他要我把hashtable的樣子跟他講 exactly 一點~ 我就答不出來了...然後就byebye了... == 煩請版友幫忙我這新手解答疑惑... 感謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 71.131.17.58
nukchichi:我也有可能一開始就錯了 他只是順著我應答 @@ 07/30 09:22
※ 編輯: nukchichi 來自: 71.131.17.58 (07/30 09:24)
iamweep:他沒少給你37,scan把10-X存在hashtable,再scan 07/30 09:32
Zennstrom:1. hashtable 2.空間限制的話, 看能不能sort,再兩頭找 07/30 13:21
Solti:創一個table, 全部存-1 07/30 13:36
Solti:然後讀入數字 填值 之類的... 邊輸入邊輸出 應該可以快 07/30 13:41