三个数相加等于0

题目描述

输入一个数组,他有n个元素,如果其中有三个数和为零,那么输出Yes,否则输出No

输入格式

第一行一个整数n表示数组元素个数
第二行a数组

 输出格式

Yes或No

 输入样例

4

-2 1 1 2

输出样例

Yes

参考代码

 

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,temp=0;
	cin>>n;
	int a[n];
	for(int i=0;i<n;i++)//输入数据
	{
		cin>>a[i];
	}
	sort(a,a+n);//排序
	for(int i=0;i<n;++i)
	{
		int c=-a[i];
		if(c<0)//如果是正数,跳出
		{
			break;
		}
		int j=i+1,k=n-1;//从头和尾开始查找
		while(j<k)
		{
			if(a[j]+a[k]==c)//如果找到
			{
				temp=1;
				break;
			}
			else if(a[j]+a[k]<c)//如果小于,向右移动一位开始查找
			{
				j++;
			}
			else//如果打于,向左移动一位开始查找
			{
				k--;
			}
		}
		if(temp==1)//如果可以找到
		{
			break;
		}
		while(i+1<n&&a[i]==a[i+1])
		{
            i++;
        }
	}
	if(temp==1)
	{
		cout<<"Yes";
	}
	else
	{
		cout<<"No";
	}
}

 

 

全部评论

相关推荐

感觉他们一点都不了解现在这个社会就业有多难,已经在牛客刷到好多篇&nbsp;延毕的帖子了,延毕就会导致已经找好的工作就没了,还得重新再找,学校和老师们是怎么想的呢????看到学生丢失工作会开心吗&nbsp;就业数据都在造假,真实的就业困难不去解决&nbsp;一个个真是好样的
从今天开始狠狠卷JV...:学生看到的是导师不放实习导致offer黄了。 导师看到的是招进来的学生吃自己补助和自己的招生名额,却没给自己升迁带来任何帮助,还要跑路。 根本利益的不一致,最主要留校的导师大概率是职场上招聘失败的,被迫留校的,什么牛鬼蛇神都会有
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务