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;
}