本文主要是介绍2.12 快速寻找满足条件的两个数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:一个数组,快速找出两个数的和,使得这个和等于给定的另外一个数
思路:先排序,然后首尾两个指针,i.j,如果和等于给定的数,则找到,如果小于的话,则I++,如果大于的话,则J--
代码:
#include <iostream>
#include <algorithm>#define MAXN 10000using namespace std;int n, sum;
int a[MAXN];int main() {cin >> n >> sum; for(int i = 0; i < n; ++i) cin >> a[i];sort(a, a+n);for(int i = 0, j = n-1; i < j; ) {if(a[i] + a[j] == sum) {cout << a[i] << endl << a[j] << endl;break;}else if(a[i] + a[j] < sum) i++;else j--;}return 0;
}
这篇关于2.12 快速寻找满足条件的两个数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!