站外题求助,答毕关
  • 板块学术版
  • 楼主Chalage_2010
  • 当前回复9
  • 已保存回复9
  • 发布时间2022/10/2 16:42
  • 上次更新2023/10/27 09:11:58
查看原帖
站外题求助,答毕关
760690
Chalage_2010楼主2022/10/2 16:42

题目描述

在一个长度为n的数字序列中,如果相邻元素差的绝对值经过升序排序后正好是1~n-1,则认定该序列存在“有趣的跳跃”。例如:数字序列1、4、2、3的相邻数字差的绝对值分别为3、2、1,排序后是1、2、3,说明该序列存在着“有趣的跳跃”。现在给你一个序列,请你判断该序列是否存在“有趣的跳跃”。

 

输入格式:

第1行为一个整数n(不超过100000)。

接下来一行为n个不超过100000的整数。


 

输出格式:

若存在,输出“yes”,否则输出“no”。

 

样例输入:

4
1 4 2 3
样例输出:

yes
约定:

1<=n<=100000


 

提示:

我的代码

#include<bits/stdc++.h>
using namespace std;
long long n,ai[100005];
int main()
{
	cin>>n;
	cin>>ai[1];
	for(int i=2;i<=n;i++)
	{
		cin>>ai[i];
		ai[i-1]=abs(ai[i]-ai[i-1]);
	}
	for(int i=1;i<=n-2;i++)
	{
		int minn=i;
		for(int j=i;j<=n;j++)
		{
			if(ai[minn]>ai[j])
			{
				minn=j;
			}
		}
		swap(ai[i],ai[minn]);
	}
	for(int i=1;i<=n-1;i++)
	{
		if(ai[i]!=i)
		{
			cout<<"no";
			return 0;
		}
	}
	cout<<"yes";
	return 0;
}

请各位大佬看看有什么问题

2022/10/2 16:42
加载中...