输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。
原文转自:http://blog.csdn.net/u013322907/article/details/38300711
题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。
要求时间复杂度是 O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组 1、2、4、7、11、15 和数字 15。由于 4+11=15,因此输出 4 和 11。
由于是有序的,可以用双指针来做。第一个指针i指向a[0],第二个j指向a[n-1],
若a[i]+a[j]>v,j--;
若a[i]+a[j]<v,i++;
若a[i]+a[j]=v,结束。
- #include <iostream>
- using namespace std;
- void find(int a[],int n,int v)
- {
- int i=0;
- int j=n-1;
- while(i<j )
- {
- if(a[i]+a[j]<v)
- {
- i++;
- }
- else if(a[i]+a[j]>v)
- {
- j--;
- }
- else
- {
- cout<<a[i]<<" + "<<a[j]<<" = "<<v<<endl;
- return;
- }
- }
- }
- void main()
- {
- int a[10]={1,3,6,8,11,13,15,17,20,22};
- find(a,10,4);
- system("pause");
- }
输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。相关推荐
- 【编程题目】输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。...
第 14 题(数组): 题目:输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字. 要求时间复杂度是 O(n).如果有多对数字的和等于输入的数字,输出任意 ...
- Java黑皮书课后题第7章:*7.28(数学:组合)编写一个程序,提示用户输入10个整数,然后显示从这10个数中选出两个数的所有组合
7.28(数学:组合) 题目 题目描述 破题 代码 运行示例 题目 题目描述 *7.28(数学:组合)编写一个程序,提示用户输入10个整数,然后显示从这10个数中选出两个数的所有组合 破题 声明一个长 ...
- Python中计算两个数据点之间的欧式距离,一个点到数据集中其他点的距离之和
计算数两个数据点之间的欧式距离 import numpy as np def ed(m, n):return np.sqrt(np.sum((m - n) ** 2)) i = np.array([1 ...
- C++ leetcode 21. 合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
一.C++ 代码 class Solution { public:ListNode* insert(ListNode *res, int val) {if (res->val == INT_MA ...
- 100题_10 在排序数组中查找和为给定值的两个数字
题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字.要求时间复杂度是O(n).如果有多对数字的和等于输入的数字,输出任意一对即可. 例如输入数组1.2 ...
- (六)使用C++实现冒泡排序,对数组进行升序排序
指针.数组.函数 案例描述:封装一个函数 void函数,实现冒泡排序? ,对整型数组进行升序排序 #include<iostream> using namespace std; //冒泡排 ...
- php 二维数组 第一个,php二维数组排序几种方法
二维数组排序排序在php中也提供了一个函数array_multisort就可以直接排序了,下面我来介绍除了全使用array_multisort 对数组进行排序我们还写了一些自定二维数组排序方法. 有时 ...
- 快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值
我觉得写得很清晰,希望没有侵犯作者的著作权,原文地址http://blog.csdn.net/hackbuteer1/article/details/6699642 快速找出一个数组中的两个数字,让这 ...
- 数组两个整数相加 c语言,作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)...
题目描述 给定一个整数数组,找出其中两个数相加等于目标值 输入 [1,3,5,7,9,11] 10 输出 1,9 3,7 代码: import java.util.HashMap; import ja ...
最新文章
- [日期工具分享][Shell]为特定命令依次传入顺序日期执行
- 利用__index和__newindex实现默认值表、监控表、只读表(转)
- 02-CA/TA编程:aes demo
- 【干货】优秀的移动客户端 Web App设计,让用户体验飞起来
- 洛谷 P1044 栈 [卡特兰数]
- PHP 利用 curl 发送 post get del put patch 请求
- vue 组件发布记录
- sql2012一段时间无法连接报53错误
- Intellij Idea乱码解决方案都在这里了
- VMware Workstation 12.5 安装Mac OS X
- PHP根据配置的规则,计算用户的等级
- opencv5-objdetect之级联分类器
- 2021年腾讯研发大数据报告
- 我在 B 站挖到了 9 款深藏不露的工具,每个都好用到爆!
- 总是过目即忘,试试建立知识库吧
- 荧光分子探针Ru(bpy)2(DA-phen)(PF6)2|Ir(ppy)2(DA-phen)PF6合成试剂
- 【Web技术】948- 生成前端海报的 N 种方案和优劣
- 火星辩证派第1期·精华版:为什么在DeFi这个赛道上国外项目异常火爆,中国市场却反应迟缓?...
- antd upload一直处于uploading状态
- 什么是响应式Web设计?