[北美] CS面試問題(entry level)分享

看板Oversea_Job作者 (haha)時間13年前 (2011/07/30 09:19), 編輯推噓3(302)
留言5則, 4人參與, 最新討論串1/3 (看更多)
大家好, 今天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

07/30 09:22, , 1F
我也有可能一開始就錯了 他只是順著我應答 @@
07/30 09:22, 1F
※ 編輯: nukchichi 來自: 71.131.17.58 (07/30 09:24)

07/30 09:32, , 2F
他沒少給你37,scan把10-X存在hashtable,再scan
07/30 09:32, 2F

07/30 13:21, , 3F
1. hashtable 2.空間限制的話, 看能不能sort,再兩頭找
07/30 13:21, 3F

07/30 13:36, , 4F
創一個table, 全部存-1
07/30 13:36, 4F

07/30 13:41, , 5F
然後讀入數字 填值 之類的... 邊輸入邊輸出 應該可以快
07/30 13:41, 5F
文章代碼(AID): #1ECrmyZJ (Oversea_Job)
文章代碼(AID): #1ECrmyZJ (Oversea_Job)