作者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
1F:→ nukchichi:我也有可能一开始就错了 他只是顺着我应答 @@ 07/30 09:22
※ 编辑: nukchichi 来自: 71.131.17.58 (07/30 09:24)
2F:→ iamweep:他没少给你37,scan把10-X存在hashtable,再scan 07/30 09:32
3F:推 Zennstrom:1. hashtable 2.空间限制的话, 看能不能sort,再两头找 07/30 13:21
4F:推 Solti:创一个table, 全部存-1 07/30 13:36
5F:推 Solti:然後读入数字 填值 之类的... 边输入边输出 应该可以快 07/30 13:41