给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出,次数相同时先输出值较小的数
时间: 2024-12-24 17:35:35 浏览: 23
这个问题通常涉及到数据结构中的哈希表(HashMap 或者字典)以及排序算法。以下是解决这个问题的一个基本步骤:
1. 首先,创建一个空的哈希表(Python 中可以使用 dict),用于存储每个整数及其对应的计数。
2. 遍历输入的 n 个整数列表,对于每一个数字,检查它是否已经在哈希表中。如果不在,添加它并设置计数为 1;如果已在,增加其计数。
3. 完成遍历后,哈希表会记录每个整数出现的次数。接下来需要将这个哈希表转换为一个列表,其中元素是元组 `(value, count)`,按照计数降序排列,并保持计数相同的数字按值从小到大排序。
4. 最后,遍历排序后的列表,并依次打印每个整数及其出现的次数。
例如,在 Python 中,可以这样做:
```python
def count_numbers(numbers):
counts = {}
for num in numbers:
if num in counts:
counts[num] += 1
else:
counts[num] = 1
sorted_counts = sorted(counts.items(), key=lambda x: (-x[1], x[0]))
for num, count in sorted_counts:
print(f"数字 {num} 出现了 {count} 次")
# 示例用法
numbers = [1, 2, 2, 3, 3, 3, 4, 4, 5]
count_numbers(numbers)
```
阅读全文