面试题---两数之和
来源:互联网 发布:mac itune 制作铃声 编辑:程序博客网 时间:2024/05/16 13:45
题目:输入一个已经按升序排序过的数组和一个数字,
在数组中查找两个数,使得它们的和正好是输入的那个数字。
要求时间复杂度是O(n)。
如果有多对数字的和等于输入的数字,输出任意一对即可。
例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。
在数组中查找两个数,使得它们的和正好是输入的那个数字。
要求时间复杂度是O(n)。
代码如下:
#include<iostream>using namespace std;/*start往上增长,end往下递减。1.出现data[start] + data[end] > sum的情况是建立在data[start - 1] + data[end] < sum的情况,不包括初始值, 所以在此基础上必定为 data[start - 1] + data[end - 1] < sum,所以data[start] + data[end] == sum才有可能2.出现data[start] + data[end] < sum的情况,如果start不变,小于end的下标的数据都不能满足,只能start++3.*/void FindtwoofSum(int sum,int *data,int length){int start = 0;int end = length - 1;int temp;while(start < end){temp = data[start] + data[end];if(temp == sum){cout<<"The sum consist of "<<data[start]<<" + "<<data[end]<<endl;return;}else if(temp > sum)end--;elsestart++;}cout<<"the numbers are not exist!!"<<endl;}int main(){int data[] = {1,2,4,7,11,15};FindtwoofSum(15,data,6);return 0;}
- 面试题---两数之和
- 面试题4——求一个int型整数的两种递减数之和
- java计蒜客试题两数之和
- 两个常见位操作面试题 不用加减乘除运算符计算两数之和及a=b*3
- 两个常见位操作面试题 不用加减乘除运算符计算两数之和及a=b*3
- 两个常见位操作面试题 不用加减乘除运算符计算两数之和及a=b*3
- 两个常见位操作面试题:不用加减乘除运算符计算两数之和及a=b*3
- 两个常见位操作面试题 不用加减乘除运算符计算两数之和及a=b*3
- 面试题整理-3数之和为0
- Lintcode 两数之和
- 两数之和
- 题目:两数之和
- LintCode 两数之和
- 两数之和
- 两数之和
- 两数之和
- 两数之和
- 两数之和
- PL/SQL function解释
- 如何得到数组中的不同的元素
- deep learning学习
- abstract和interface的区别
- wpa_supplicant移植
- 面试题---两数之和
- jquery.treeview插件简单示例(一)
- MySQL数据之间的复制
- 编程之美---一摞烙饼的排序
- Discuz如何设置腾讯微博来源
- 换零钱
- 中缀表达式到后缀表达式的转换
- Unicode详解
- jquery.treeview插件简单示例(二)