- 7
- 0
- 约3.54千字
- 约 4页
- 2015-08-29 发布于重庆
- 举报
快速寻找满足条件的两个数.pdf
1、快速寻找满足条件的两个数 (编程之美中的资料不错)
能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,
为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。
假如有如下的两个数组:
5,6,1,4 ,7,9,8
给定Sum= 10
1,5,6,7,8,9
给定Sum= 10
分析与解法
这个题目不是很难,也很容易理解。但是要得出高效率的解法,还是需要一番
思考的。
解法一
一个直接的解法就是穷举:从数组中任意取出两个数字,计算两者之和是否为
给定的数字。
显然其时间复杂度为N (n-1)/2 即O (N^2)。这个算法很简单,写起来也很容
易,但是效率不高。一般在程序设计里面,要尽可能降低算法的时间和空间复杂度,
所以需要继续寻找效率更高的解法。
解法二
求两个数字之和,假设给定的和为Sum 。一个变通的思路,就是对数组中的每个
数字arr[i]都判别Sum-arr[i]是否在数组中,这样,就变通成为一个查找的算法。
在一个无序数组中查找一个数的复杂度是O (N),对于每个数字arr[i],都需要
查找对应的Sum-arr[i]在不在数组中,很容易得到时间
您可能关注的文档
最近下载
- 2026年八中自招试题及答案.doc VIP
- 人教版七年级英语第七单元教学设计.pdf VIP
- 女性主义视域下《觉醒》及其中文翻译的多维剖析.docx VIP
- 2026年北京市丰台区中考一模物理试卷和答案.docx VIP
- SY_T 7641-2021 非常规油气开采企业温室气体排放核算方法与报告指南.pdf VIP
- 2025年贵州省高考物理试卷真题(含答案解析).pdf
- 史密斯CEWH-60P6A电热水器使用说明书.pdf
- 超星尔雅学习通《中国陶瓷鉴赏与器物陈设》章节测试答案.docx VIP
- 技嘉主板Z590 UD (rev.1.0)用户手册繁体中文(版本 1102).pdf
- ML307R+Mini核心板原理图.pdf VIP
原创力文档

文档评论(0)