原文转自: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,结束。

[cpp] view plaincopy
  1. #include <iostream>
  2. using namespace std;
  3. void find(int a[],int n,int v)
  4. {
  5. int i=0;
  6. int j=n-1;
  7. while(i<j )
  8. {
  9. if(a[i]+a[j]<v)
  10. {
  11. i++;
  12. }
  13. else if(a[i]+a[j]>v)
  14. {
  15. j--;
  16. }
  17. else
  18. {
  19. cout<<a[i]<<" + "<<a[j]<<" = "<<v<<endl;
  20. return;
  21. }
  22. }
  23. }
  24. void main()
  25. {
  26. int a[10]={1,3,6,8,11,13,15,17,20,22};
  27. find(a,10,4);
  28. system("pause");
  29. }

输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。相关推荐

  1. 【编程题目】输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。...

    第 14 题(数组): 题目:输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字. 要求时间复杂度是 O(n).如果有多对数字的和等于输入的数字,输出任意 ...

  2. Java黑皮书课后题第7章:*7.28(数学:组合)编写一个程序,提示用户输入10个整数,然后显示从这10个数中选出两个数的所有组合

    7.28(数学:组合) 题目 题目描述 破题 代码 运行示例 题目 题目描述 *7.28(数学:组合)编写一个程序,提示用户输入10个整数,然后显示从这10个数中选出两个数的所有组合 破题 声明一个长 ...

  3. Python中计算两个数据点之间的欧式距离,一个点到数据集中其他点的距离之和

    计算数两个数据点之间的欧式距离 import numpy as np def ed(m, n):return np.sqrt(np.sum((m - n) ** 2)) i = np.array([1 ...

  4. C++ leetcode 21. 合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

    一.C++ 代码 class Solution { public:ListNode* insert(ListNode *res, int val) {if (res->val == INT_MA ...

  5. 100题_10 在排序数组中查找和为给定值的两个数字

    题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字.要求时间复杂度是O(n).如果有多对数字的和等于输入的数字,输出任意一对即可. 例如输入数组1.2 ...

  6. (六)使用C++实现冒泡排序,对数组进行升序排序

    指针.数组.函数 案例描述:封装一个函数 void函数,实现冒泡排序? ,对整型数组进行升序排序 #include<iostream> using namespace std; //冒泡排 ...

  7. php 二维数组 第一个,php二维数组排序几种方法

    二维数组排序排序在php中也提供了一个函数array_multisort就可以直接排序了,下面我来介绍除了全使用array_multisort 对数组进行排序我们还写了一些自定二维数组排序方法. 有时 ...

  8. 快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值

    我觉得写得很清晰,希望没有侵犯作者的著作权,原文地址http://blog.csdn.net/hackbuteer1/article/details/6699642 快速找出一个数组中的两个数字,让这 ...

  9. 数组两个整数相加 c语言,作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)...

    题目描述 给定一个整数数组,找出其中两个数相加等于目标值 输入 [1,3,5,7,9,11] 10 输出 1,9 3,7 代码: import java.util.HashMap; import ja ...

最新文章

  1. [日期工具分享][Shell]为特定命令依次传入顺序日期执行
  2. 利用__index和__newindex实现默认值表、监控表、只读表(转)
  3. 02-CA/TA编程:aes demo
  4. 【干货】优秀的移动客户端 Web App设计,让用户体验飞起来
  5. 洛谷 P1044 栈 [卡特兰数]
  6. PHP 利用 curl 发送 post get del put patch 请求
  7. vue 组件发布记录
  8. sql2012一段时间无法连接报53错误
  9. Intellij Idea乱码解决方案都在这里了
  10. VMware Workstation 12.5 安装Mac OS X
  11. PHP根据配置的规则,计算用户的等级
  12. opencv5-objdetect之级联分类器
  13. 2021年腾讯研发大数据报告
  14. 我在 B 站挖到了 9 款深藏不露的工具,每个都好用到爆!
  15. 总是过目即忘,试试建立知识库吧
  16. 荧光分子探针Ru(bpy)2(DA-phen)(PF6)2|Ir(ppy)2(DA-phen)PF6合成试剂
  17. 【Web技术】948- 生成前端海报的 N 种方案和优劣
  18. 火星辩证派第1期·精华版:为什么在DeFi这个赛道上国外项目异常火爆,中国市场却反应迟缓?...
  19. antd upload一直处于uploading状态
  20. 什么是响应式Web设计?

热门文章

  1. 英文登录QQ账号 一个有趣的小知识
  2. matlab实现主成分回归
  3. 水果分割论文、代码和数据集汇总
  4. Linux 操作系统的 ECS 挂载云硬盘
  5. Python在数据处理方面的优势
  6. 以太坊数据结构MPT 1
  7. app卡在启动页面android,app启动一直停留在启动页面
  8. 银行各个岗位及薪酬排名出炉(供参考)
  9. 应用全屏启动页适配小米9(水滴屏)
  10. 部落节点和跨群集搜索:Elasticsearch中联合搜索的未来