第二次CCF计算机软件能力认证A题-相邻数对 一次过 知识点:排序

53 阅读1分钟

3202. 相邻数对 - AcWing题库

n是1e3,也就是可以用O(n2)O(n^2)的算法,这里排个序,用两个for循环遍历一下即可,因为排过序,每次都是遍历两个相邻元素,因此时间复杂度是O(longn)O(longn)

#include<bits/stdc++.h>
using namespace std;
int n,cnt; 
const int N = 1e3 + 10;
int a[N];
int main()
{
	cin >> n;
	for (int i = 0; i < n; i++)cin >> a[i]; 
	sort(a, a + n);
	for (int i = 0; i < n-1; i++)
	{
		for (int j=i+1;j<n;j++)
		{
			if (a[j] - a[i] == 1)
			{
				cnt++;
				i++;
			}
    	}
	}

	cout << cnt;
	return 0;
}

image.png