大锤现在有一个长度为 n 的数组,她称这个数组中出现次数最多的数为有代表性的数,可以发现一个数组中具有代表性的数不一定唯一,如果存在多个,输出最小的那个。(每个数的范围在-1000~1000之间) 输入 两行, 第一行,一个整数n(n不超过1000) 第二行,n个整数(每个数的范围在-1000~1000之间) 输出 一行,一个整数——输出最小的有代表性的数。 输入样例 1 5 1 2 1 2 -3 输出样例1 1 c++ 代码
时间: 2023-12-10 11:42:14 浏览: 38
```
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
int n;
cin >> n;
unordered_map<int, int> mp;
int maxCnt = 0, minNum = 1001;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
mp[num]++;
if (mp[num] > maxCnt) {
maxCnt = mp[num];
minNum = num;
} else if (mp[num] == maxCnt && num < minNum) {
minNum = num;
}
}
cout << minNum << endl;
return 0;
}
```
相关问题
用qt写一个串口通信例程
好的,我可以为您提供相关的代码和教程,您可以参考以下链接:
1. Qt官方文档 – 串口通信:https://doc.qt.io/qt-5/qtserialport-index.html
2. Qt下串口通信的实现:https://www.cnblogs.com/EasonJim/p/QtSerialPort.html
3. Qt串口通信的例程:https://blog.csdn.net/qq_35544311/article/details/82124718
希望能对您有所帮助。
请使用go预言实现一个skipList
在 Go 语言中实现一个 SkipList 的话,需要遵循以下步骤:
1. 定义一个结构体,表示一个节点,该结构体包含一个键和值以及一个指向前后相邻节点的指针列表。
2. 定义一个结构体,表示一个 SkipList,该结构体包含一个指向第一个节点的指针和一个随机数生成器。
3. 实现插入操作。在 SkipList 中插入一个新的节点,需要遍历整个列表,找到前驱节点,然后在前驱节点处插入新的节点。
4. 实现查询操作。查询操作是从顶层开始遍历整个列表,直到找到第一个符合条件的节点。
5. 实现删除操作。删除操作需要遍历整个列表,找到要删除的节点,然后从每一层删除该节点。
最终,通过这些步骤,你可以实现一个简单的 SkipList。
代码实现如下:
```
type Node struct {
key int
val int
next []*Node
}
type SkipList struct {
head *Node
rng *rand.Rand
}
func NewSkipList() *SkipList {
return &SkipList{
head: &Node{next: []*Node{nil}},
rng: rand.New(rand.NewSource(time.Now().UnixNano())),
}
}
func (s *SkipList) Insert(key, val int) {
var update [MaxLevel]*Node
x := s