14. 求升序的数组中两个数的和为N
来源:互联网 发布:ubuntu root密码忘记 编辑:程序博客网 时间:2024/05/16 14:39
题目:输入一个已经按升序排序过的数组和一个数字N,在数组中查找两个数(只需要找出一对),使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。
分析:再建立一个数组,其成员为N减去原数组的值。最后只要比较两个数组中相同的值即可。部分代码如下:
for (i = 0; i < NUM; i++) {copy[i] = N - array[i]; } i = j = 0; while (i <= NUM-1 && j <= NUM-1) { if (array[i] == copy[j]) break; else if (array[i] < copy[j]) i++; else j++; } i = j = 0; if (i <= NUM-1 || j <= NUM-1) { printf("%d = %d + %d", N, array[i], N-array[i]); return 0; } else { printf("find noting!\n"); return 0; }
- 14. 求升序的数组中两个数的和为N
- 第十四题(升序数组中寻找和为特定数的两个元素)
- 有序数组求两个数的和为某个值O(n)解法
- (java)求两个排序数组(升序)中第K小的数
- 一个数组中两个数的和为N,找出这两个数字的下标
- 算法导论9.3-8-设X[1..n]和Y[1..n]为两个数组,每个都包含n个已排好序的数,给出一个求数组X和数组Y中所有2n个元素的中位数
- 面试100题:14.求在有序数组中查找两个数的和为指定数
- 面试100题:14.求在有序数组中查找两个数的和为指定数
- 升序数组中查找两个数,使得它们的和正好是输入的那个数字
- 排序数组中查找和为给定值的两个数O(n)
- 无序数组中找出和为N的两个数 Two Sum
- 在升序数组中查找和等于给定值的两个数
- 练习 2.3-7 求一个元素是否为数组中两个数的和
- 【算法】求数组中某两个数的和为目标值
- 微软面试题——整数升序数组、数M,输出和为M的两个数组元素
- 输入一个安升序排列的数组和一个数,在数组中找两个数,使它们的和正好是给定的那个数。o(n)
- 求从一个整数数组中两个数之和为m的两个数
- 给定数组,试求能否从数组中取出n个不复用的数的和为sum
- 工作快4年了,做个小结
- webshpere下载地址
- POJ 2987 最大流最小割最大权闭合图
- csdn java 作业题
- 光源的闪烁效应分析及闪烁的测量方法介绍
- 14. 求升序的数组中两个数的和为N
- C# 委托实例(跨窗体操作控件)
- 多视图应用程序
- 查询和删除表中重复数据sql语句
- 探究Tomcat的session操作
- What are you talking about(HDU1075)
- [ios开发基础之]KVO的使用
- Tomcat 安装简明教程
- Creating Excel File Through XML