第 14 题(数组):
题目:输入一个已经按升序排序过的数组和一个数字,
在数组中查找两个数,使得它们的和正好是输入的那个数字。
要求时间复杂度是 O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。
例如输入数组 1、2、4、7、11、15 和数字 15。由于 4+11=15,因此输出 4 和 11。

要求时间是O(n)肯定就只能扫描一遍。 又有两个数字要找,那就只能一个从头向后找 一个从后向前找 初始把大值设为最后一个数, 小值设为第一个数,如果数字和大于和,则减小大数的数值, 反之增大小数字的数值。 收缩直至数字相遇或者找到合适解。

/*
第 14 题(数组):
题目:输入一个已经按升序排序过的数组和一个数字,
在数组中查找两个数,使得它们的和正好是输入的那个数字。
要求时间复杂度是 O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。
例如输入数组 1、2、4、7、11、15 和数字 15。由于 4+11=15,因此输出 4 和 11。
*/#include<stdio.h>int findsum(int * in, int len, int sum) //输入数组 数组长度 和
{int i, j;for(i = 0, j = len - 1; i < j; ){if(in[i] + in[j] == sum){printf("%d = %d + %d" , sum, in[i], in[j]);return 1;}else if(in[i] + in[j] < sum){i++;}else{j--;}}printf("no answer");return 0;
}int main()
{int a[20] = {1,2,4,7,11,15};int n = 6;findsum(a, n, 15);return 0;
}

转载于:https://www.cnblogs.com/dplearning/p/3895217.html

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

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

    原文转自:http://blog.csdn.net/u013322907/article/details/38300711 题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们 ...

  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. PTA 基础编程题目集 7-20 打印九九口诀表 C语言

    PTA 基础编程题目集 7-20 打印九九口诀表 C语言 下面是一个完整的下三角九九口诀表: 本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表. 输入格式: 输入在一行中给出一个正整数N ...

  7. PTA 基础编程题目集 6-8 简单阶乘计算 C语言

    PTA 基础编程题目集 6-8 简单阶乘计算 C语言 本题要求实现一个计算非负整数阶乘的简单函数. 函数接口定义: int Factorial( const int N ); 其中N是用户传入的参数, ...

  8. PTA 基础编程题目集 7-16 求符合给定条件的整数集 C语言

    PTA 基础编程题目集 7-16 求符合给定条件的整数集 C语言 给定不超过6的正整数A,考虑从A开始的连续4个数字.请输出所有由它们组成的无重复数字的3位数. 输入格式: 输入在一行中给出A. 输出 ...

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

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

最新文章

  1. 04封装 里氏转换 多态
  2. 在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行
  3. 数据库的数据在硬盘上吗
  4. python虚拟环境的安装和配置_基于virtualenv的Python虚拟环境的安装配置(Mac环境)...
  5. Error -26612: HTTP Status-Code=500 (Internal Server Error) ...
  6. java 对象的解释过程
  7. 演讲(1)----8个有趣故事
  8. VB获取超过2G文件的大小
  9. Vasp二维材料单胞基本计算范例
  10. SaaS 长河下,AfterShip 技术升级的“加减法”
  11. 易基因|病毒抗性:全基因组DNA甲基化揭示草鱼年龄相关病毒易感性的表观遗传机制
  12. Tcp为什么是4次挥手呢?为什么是3次握手,不能是3次挥手呢?
  13. opencv-人眼检测,人眼跟踪
  14. Eclipse IDE for Java EE Developers 去哪里了?
  15. 女博士年薪156万入职华为:给员工吃饱了,他们才会为你拼命
  16. 什么是Subject
  17. 关于unity粒子系统renderer设为mesh(网格)模式后无法旋转的问题
  18. 80个python项目下载_80个Python经典资料(教程+源码+工具)汇总——下载目录
  19. ajax布林德,丹尼·布林德
  20. iOS Xcode必备插件

热门文章

  1. 简单入门——深度学习笔记(Part II)
  2. [Socket网络编程]一个封锁操作被对 WSACancelBlockingCall 的调用中断。
  3. Python自动化测试 (九)urllib2 发送HTTP Request
  4. CentOS-Samba服务
  5. 7. SQL -- 创建数据库(表,字段)
  6. Android 自定义view的知识梳理。
  7. java.io.IOException: Unable to open sync connection!的解决方案
  8. CSS核心技术详解-核心概念
  9. Mybatis的CRUD之XML方式以及动态SQL
  10. 以太坊源码分析——BlockChain