快速寻找满足条件的两个数
编程之美题目2.12:
给定一个数组,如何找出数组中的两个数字,让这两个数字之和等于一个给定的值.
书上有一个解法是使用哈希表,不明白怎么使用?求高手可以具体解释一下.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
编程之美题目2.12:
给定一个数组,如何找出数组中的两个数字,让这两个数字之和等于一个给定的值.
书上有一个解法是使用哈希表,不明白怎么使用?求高手可以具体解释一下.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
考虑最简单的情况,数组中的数均不相同。首先建哈希表,对每个元素
hash_table[hash(element)] = 1
。假定和为s,遍历数组中的元素t,若
hash_table[hash(s-t)]==1
(说明s-t在数组中),则数组中的t, s-t满足条件。时间复杂度是线性的。