【编程题目】输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。...
第 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
【编程题目】输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。...相关推荐
- 输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。
原文转自:http://blog.csdn.net/u013322907/article/details/38300711 题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们 ...
- 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 ...
- PTA 基础编程题目集 7-20 打印九九口诀表 C语言
PTA 基础编程题目集 7-20 打印九九口诀表 C语言 下面是一个完整的下三角九九口诀表: 本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表. 输入格式: 输入在一行中给出一个正整数N ...
- PTA 基础编程题目集 6-8 简单阶乘计算 C语言
PTA 基础编程题目集 6-8 简单阶乘计算 C语言 本题要求实现一个计算非负整数阶乘的简单函数. 函数接口定义: int Factorial( const int N ); 其中N是用户传入的参数, ...
- PTA 基础编程题目集 7-16 求符合给定条件的整数集 C语言
PTA 基础编程题目集 7-16 求符合给定条件的整数集 C语言 给定不超过6的正整数A,考虑从A开始的连续4个数字.请输出所有由它们组成的无重复数字的3位数. 输入格式: 输入在一行中给出A. 输出 ...
- (六)使用C++实现冒泡排序,对数组进行升序排序
指针.数组.函数 案例描述:封装一个函数 void函数,实现冒泡排序? ,对整型数组进行升序排序 #include<iostream> using namespace std; //冒泡排 ...
最新文章
- 04封装 里氏转换 多态
- 在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行
- 数据库的数据在硬盘上吗
- python虚拟环境的安装和配置_基于virtualenv的Python虚拟环境的安装配置(Mac环境)...
- Error -26612: HTTP Status-Code=500 (Internal Server Error) ...
- java 对象的解释过程
- 演讲(1)----8个有趣故事
- VB获取超过2G文件的大小
- Vasp二维材料单胞基本计算范例
- SaaS 长河下,AfterShip 技术升级的“加减法”
- 易基因|病毒抗性:全基因组DNA甲基化揭示草鱼年龄相关病毒易感性的表观遗传机制
- Tcp为什么是4次挥手呢?为什么是3次握手,不能是3次挥手呢?
- opencv-人眼检测,人眼跟踪
- Eclipse IDE for Java EE Developers 去哪里了?
- 女博士年薪156万入职华为:给员工吃饱了,他们才会为你拼命
- 什么是Subject
- 关于unity粒子系统renderer设为mesh(网格)模式后无法旋转的问题
- 80个python项目下载_80个Python经典资料(教程+源码+工具)汇总——下载目录
- ajax布林德,丹尼·布林德
- iOS Xcode必备插件
热门文章
- 简单入门——深度学习笔记(Part II)
- [Socket网络编程]一个封锁操作被对 WSACancelBlockingCall 的调用中断。
- Python自动化测试 (九)urllib2 发送HTTP Request
- CentOS-Samba服务
- 7. SQL -- 创建数据库(表,字段)
- Android 自定义view的知识梳理。
- java.io.IOException: Unable to open sync connection!的解决方案
- CSS核心技术详解-核心概念
- Mybatis的CRUD之XML方式以及动态SQL
- 以太坊源码分析——BlockChain