之前60,根据评论区改了相同后,40分,但是评论区的测试样例都过了
查看原帖
之前60,根据评论区改了相同后,40分,但是评论区的测试样例都过了
614984
NNNNzh楼主2023/3/22 00:59
#include<bits/stdc++.h>
using namespace std;
int n;
int a[100100];	int len[100010];
	int vis[100010];
int main()
{
	cin>>n;
	memset(a,0,sizeof(a));
	for(int i=0;i<n;i++)
	cin>>a[i];
	sort(a,a+n);
	if(a[0]<0)
	{
		int d=a[0];
		for(int i=0;i<n;i++)
		{
			a[i]-=d;
		}
	}
	memset(vis,0,sizeof(vis));

	for(int i=0;i<n;i++)
	len[i]=1;
	int maxx=-1;
	for(int i=0;i<n;i++)
	{
		int j=i+1;
		int x=1;

		if(len[i]==1)
			while(a[j]==a[i]+x||a[j]==a[i]+x-1)
			{
				if(a[j]==a[i]+x)
				{
					if(len[j]==0)
					{
						j++;
					}
					else
					{
					
					len[i]++;
					len[j]=0;

					j++;x++;}
				}
				else if(a[j]==a[i]+x-1)
				{
					j++;
				}
			}
		
	}

	int minn=0x3f3f3f;
	for(int i=0;i<n;i++)
	{

		if(len[i]!=0)
		minn=min(minn,len[i]);

	}
	cout<<minn;
}
2023/3/22 00:59
加载中...