相反数(201403-1/CCF)———附带思路和完整代码

0 效果

在这里插入图片描述
难点:时间、空间复杂度优化

1 题目

在这里插入图片描述

2 思路

使用哈希映射的方法,对数字num的绝对值abs(num)进行次数累加hashTable[abs(num)]++,因为每个数输入的都不同,因此hahTable值为2时,相反数的个数累加,最后输出这个值即可。

3 代码

#include<cstdio>
#include<math.h>
const int MAXN = 510;
int hashTable[MAXN] = {0};

int main(){
	int n, ans = 0;
	scanf("%d", &n);
	while(n--){
		int num;
		scanf("%d", &num);
		hashTable[abs(num)]++;
		if(hashTable[abs(num)] == 2) ans++;
	}
	printf("%d", ans);
	return 0;
}
©️2020 CSDN 皮肤主题: 岁月 设计师:pinMode 返回首页