P0590

题目内题解

前置:无

最低所需知识点:基础语法

做法一:

你当然可以直接双重for循环遍历数组 O(n^2)的时间复杂度 不过通过此题绰绰有余

注意:

相同的数出现多次只算出现过一次!

做法二:

进阶版本的做法 更高的空间复杂度 但是更快的速度(虽然数值仍然比前者高 但是复杂度为常数)

建立两个桶数组 分别统计两个数组中绝对值不超过1*10^4的数出现的次数

注意是绝对值不超过1*10^4所以数据可能为负数

桶数组的空间开到2*10^4在每次进行计算时将数先+1 *10^4即可保证数组内数据统计无误

最后统计重复出现的数时仅需遍历桶数组 在两个桶数组中都标记出现过时cnt+1

输出cnt