作者nukchichi (haha)
看板Oversea_Job
標題[北美] CS面試問題(entry level)
時間Sat Jul 30 09:19:53 2011
大家好,
今天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