给定n个整数,编写一个实验程序找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
时间: 2023-06-14 20:05:20 浏览: 74
C语言实验-有3个整数a,b,c,由键盘输入,编写程序输出其中绝对值最大(或最小)的数。
5星 · 资源好评率100%
可以使用哈希表来解决这个问题。具体做法如下:
1. 遍历整个数组,对于每个数,将其作为键,在哈希表中进行查找。如果该数已经在哈希表中,则将该数对应的值加一;否则,在哈希表中添加该数,并将其值初始化为 1。
2. 遍历哈希表,找到出现次数最多的数。如果有多个数出现次数相同,则输出最小的那个数。
以下是 Python 代码实现:
```python
def find_most_frequent(nums):
hashmap = {}
max_freq = 0
min_num = float('inf')
for num in nums:
if num in hashmap:
hashmap[num] += 1
else:
hashmap[num] = 1
if hashmap[num] > max_freq:
max_freq = hashmap[num]
min_num = num
elif hashmap[num] == max_freq:
min_num = min(min_num, num)
return min_num
```
时间复杂度为 O(n),空间复杂度为 O(n)。
阅读全文