查找两数之和等于给定值
来源:互联网 发布:淘宝店美人药妆害死人 编辑:程序博客网 时间:2024/04/30 04:51
第14题:
题目:输入一个已经按升序排序过的数组和一个数字,
在数组中查找两个数,使得它们的和正好是输入的那个数字。
要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。
题目:输入一个已经按升序排序过的数组和一个数字,
在数组中查找两个数,使得它们的和正好是输入的那个数字。
要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。
例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。
#include <stdio.h>//假设此数组是按照升序排列void find_two_numbers(int array[], int len, int value){ int sum, small_index, big_index; small_index = 0; //small_index初始化指向数组第一个数 big_index = len - 1; //big_index初始化指向数组最后一个数 sum = 0; //sum初始化为0 while(small_index < big_index) //当big_index >= small_index是退出循环 { sum = array[small_index] + array[big_index]; if(sum > value) //若此二数之和大于value,则需要将big_index指向更小一些的数 { big_index --; }else if(sum < value) //若此二数之和小于value,则需要将small_index指向更大一些的数 { small_index ++; }else { printf("%d + %d = %d\n",array[small_index],array[big_index],value); //return ; //若只需要一组数,则此时就可以结束程序 big_index --; small_index ++; //更改两个index值,继续查找其它满足条件的数 } }}int main(){ int array[] = {-1,0,1,2,4,7,8,11,15}; int len = 9; int value = 15; find_two_numbers(array, len, value); return 0;}
- 查找两数之和等于给定值
- 数组两个数之和,等于给定数
- 两数之和等于x
- 两数之和等于目标值
- 查找两数之和
- 【微软谷歌面试100题--【14】有序序列的两数之和等于给定的数sum
- 一个无序数组中两个数之和等于给定的值sum
- 给定排好序的数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X
- 给定排好序的数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X
- [leetcode, python] Two Sum 两数之和等于某数
- 数字串中找到两数之和等于已知数
- 快速寻找满足条件的两个数(两数之和为给定值)
- 判断数组中是否存在两数之和等于X
- 在升序数组中查找和等于给定值的两个数
- 快速找出一个数组中的两个数字,使两个数之和 等于一个已给定的值
- 求正数数组的子数组之和等于给定值
- 二叉搜索树两点之和等于给定值
- 求数组中若干个元素之和等于给定值
- centos 虚拟主机配置
- Java 多应用服务器Session共享问题
- 冒泡排序、选择排序、插入排序 算法实现
- J2EE上API上两个init方法的区别
- 普通人读普通大学,不意味普通人生
- 查找两数之和等于给定值
- GET方法和POST方法的区别
- Cstyle的UEFI导读之Mass Storage Driver Stack
- C++ Lambda
- [基本] C++中隐式转换
- 黑马韩前成Linux从入门到精通の第九章Linux网络基础
- Ubuntu使用技巧
- 阅读《第31次中国互联网络发展状况统计报告》,对中国互联网发展趋势和特点的分析
- 设计模式推演——组合与继承