输入一组无序的整数,编程输出其中出现次数最多的整数及其出现次数
时间: 2023-05-31 08:18:25 浏览: 203
### 回答1:
以下是 Python 代码实现:
```
from collections import Counter
def most_frequent_int(arr):
count = Counter(arr)
return count.most_common(1)[0]
arr = [1, 2, 3, 1, 2, 2, 3, 3, 3]
print(most_frequent_int(arr))
```
输出:`(3, 4)`,表示整数 `3` 出现了 `4` 次。
### 回答2:
要解决这个问题,我们需要先定义一个字典(dictionary)来记录每个整数的出现次数。接着遍历输入的整数序列,对于每个整数,如果它已经在字典中出现过,就将字典中对应数值加1;否则,就将这个整数作为字典中的一个新键(key),并将对应数值设为1。
在遍历完所有输入的整数之后,我们再次遍历字典,找到出现次数最多的整数及其出现次数。具体的实现步骤如下:
1. 定义一个空字典freq_dict来存储每个整数出现的次数。
2. 遍历输入的整数序列,对于每个整数num,检查它是否已经在freq_dict中。
如果已经存在,就将相应的值加1;否则,将这个整数作为新键,并将值设为1。
3. 遍历freq_dict,找到出现次数最多的整数和对应的出现次数。
可以遍历字典的键(keys)或者值(values),找到最大值对应的键即可。
下面是Python的示例代码:
```
num_list = [5, 2, 8, 3, 5, 4, 2, 5, 5, 2, 7]
freq_dict = {}
# 统计每个数字出现的次数
for num in num_list:
if num in freq_dict:
freq_dict[num] += 1
else:
freq_dict[num] = 1
# 找到出现次数最多的数字和对应次数
most_freq_num = None
most_freq_count = 0
for num, count in freq_dict.items():
if count > most_freq_count:
most_freq_count = count
most_freq_num = num
print(f"出现最多的数字是{most_freq_num},出现次数为{most_freq_count}次。")
```
当运行以上代码时,会输出以下结果:
```
出现最多的数字是5,出现次数为4次。
```
因此,在输入的数字序列中,数字5是出现次数最多的整数,它共出现了4次。
### 回答3:
想要解决这个问题,我们需要做以下几个步骤:
1. 接收输入:我们可以使用系统提供的input()函数从用户的输入中获取整数集合。因为题目中没有说明集合的大小,我们可以假设用户输入的集合长度不超过100个数。
2. 统计出现次数:对于输入的集合,我们可以使用一个字典来记录其中每个数出现的次数。具体实现方式是遍历集合中的每个元素,如果该元素已经在字典中存在,则将其对应的值加1;否则在字典中新增一项,键为该元素,值初始化为1。
3. 找到出现次数最多的整数:遍历字典,找到值最大的键即可。
4. 输出结果:将找到的出现次数最多的整数及其出现次数以适当的格式输出给用户即可。
下面是具体的代码实现:
```python
# 接收输入
nums = list(map(int, input().split()))
# 统计出现次数
count = {} # 记录每个数出现的次数
for num in nums:
if num in count:
count[num] += 1
else:
count[num] = 1
# 找到出现次数最多的整数
most_common_num, freq = max(count.items(), key=lambda x: x[1])
# 输出结果
print(f"出现次数最多的整数是{most_common_num},出现了{freq}次。")
```
这个程序的时间复杂度是O(n),其中n为输入集合的大小。我们遍历了集合两次,每次遍历的时间复杂度都是O(n),所以总的时间复杂度仍然是O(n)。这个程序的空间复杂度也是O(n),因为我们需要使用一个字典来记录每个数出现的次数。
阅读全文