- 帅泓宇 的博客
P0590题解
- @ 2026-6-10 22:46:19
前置:无
最低所需知识点:基础语法
做法一:
你当然可以直接双重for循环遍历数组 O(n^2)的时间复杂度 不过通过此题绰绰有余
注意:
相同的数出现多次只算出现过一次!
做法二:
进阶版本的做法 更高的空间复杂度 但是更快的速度(虽然数值仍然比前者高 但是复杂度为常数)
建立两个桶数组 分别统计两个数组中绝对值不超过1*10^4的数出现的次数
注意是绝对值不超过1*10^4所以数据可能为负数
桶数组的空间开到2*10^4在每次进行计算时将数先+1 *10^4即可保证数组内数据统计无误
最后统计重复出现的数时仅需遍历桶数组 在两个桶数组中都标记出现过时cnt+1
输出cnt