这是Google的面试问题,请参阅此处的youtube链接。
任务:
从无序列表中找到2个整数,这些整数相加得出给定的整数。
- 给定一个无序的整数列表,找到2个总和为给定值的整数,打印这2个整数,并指示成功(退出0)。它们不需要是任何特定的数字(即,前2个整数加起来为正确的数字),任何与该值加起来的对都可以使用。
- 整数为正且大于零。
- 整数列表可以采用任何数据结构,包括整数文件-每行一个整数。
- 如果找不到整数,则指示失败(出口1)。
- 必须返回列表中不同位置的两个整数。(即,您不能从同一位置两次返回相同的数字)
(注意:在视频中,这些不完全是要求。“采访者”多次更改了他的位置。)
例如。
sum2 8 <<EOF
1
7
4
6
5
3
8
2
EOF
打印3
和5
退出状态为0。请注意,在此状态下1,7
,2,6
还将允许结果。
sum2 8 <<EOF
1
2
3
4
由于没有可能的组合,因此返回退出状态1。4,4
根据规则5,不允许。