相邻数对(201409-1/CCF)———附带思路和完整代码

0 效果

使用map:
在这里插入图片描述
使用int数组:
在这里插入图片描述

1 题目

在这里插入图片描述

2 思路

使用哈希映射记录每个数是否出现,每输入一个数就查询它的+1或者-1是否出现,如果有则答案个数加1.

  • 注意: 判断+1和-1时,要分开判断,不然就会出现少判断的情况,入1、3、2这种情况。

3 代码

#include<cstdio>
//#include<map>
const int MAXN = 10010;
int hashTable[MAXN] = {0};
//std::map<int, int> hashTable;
int main(){
	int n, ans = 0;
	scanf("%d", &n);
	while(n--){
		int num;
		scanf("%d", &num);
		hashTable[num]++;
		if(hashTable[num - 1] == 1) ans++;
		if(hashTable[num + 1] == 1)	ans++;	
	}
	printf("%d", ans);
	return 0;
}
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 岁月 设计师:pinMode 返回首页