#include<iostream>
#include<string>
#include<math.h>
using namespace std;
bool findsum(int* s, int len, int sum) // 时间复杂度O(n)
{
bool flag = false;
int *p = s, *q = s + len - 1; //指针p指向数组起始位, 指针q指向数组末位
while (p != q)
{
if( *p + *q < sum )
{
++p;
}
else if (*p + *q > sum)
{
--q;
}
else
{
flag = true;
break;
}
}
return flag;
}
int main(void)
{
int array[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int sum = 11, len = 9;
bool flag = findsum(array, len, sum);
if (flag)
{
cout << " Success! " << endl;
}
else
{
cout << " False! " << endl;
}
return 0;
}
#include<string>
#include<math.h>
using namespace std;
bool findsum(int* s, int len, int sum) // 时间复杂度O(n)
{
bool flag = false;
int *p = s, *q = s + len - 1; //指针p指向数组起始位, 指针q指向数组末位
while (p != q)
{
if( *p + *q < sum )
{
++p;
}
else if (*p + *q > sum)
{
--q;
}
else
{
flag = true;
break;
}
}
return flag;
}
int main(void)
{
int array[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int sum = 11, len = 9;
bool flag = findsum(array, len, sum);
if (flag)
{
cout << " Success! " << endl;
}
else
{
cout << " False! " << endl;
}
return 0;
}