1. 程式人生 > >CCF 201409-1 相鄰數對 題解

CCF 201409-1 相鄰數對 題解

試題編號: 201409-1
試題名稱: 相鄰數對
時間限制: 1.0s
記憶體限制: 256.0MB
問題描述: 問題描述   給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。 輸入格式   輸入的第一行包含一個整數n,表示給定整數的個數。
  第二行包含所給定的n個整數。
輸出格式   輸出一個整數,表示值正好相差1的數對的個數。 樣例輸入 6
10 2 6 3 7 8
樣例輸出 3 樣例說明   值正好相差1的數對包括(2, 3), (6, 7), (7, 8)。 評測用例規模與約定   1<=n<=1000,給定的整數為不超過10000的非負整數。

陣列題

思路:陣列下標代表具體0~10000具體數字,陣列元素的值代表是否有此數,0為沒有1為有。

列舉陣列,看相鄰的兩個陣列元素值是否都為1(相鄰的兩個數存在),計數器+1

滿分程式碼:

#include <iostream>
#include <string.h>
using namespace std;

int main() {
	int a[10005];
	memset(a,0,sizeof(int)*10005);
	int n;
	cin >> n;
	int num,count=0;
	for (int i=0;i<n;i++) {
		cin >> num;
		a[num]++;
	}
	for (int i=0;i<10004;i++){
		if (a[i] && a[i+1])
			count++;
	}
	cout << count << endl;
	return 0;
}