unordered_map<int, int> counts; int majority = 0, cnt = 0; for (int num: nums) { //遍历nums中的值 ++counts[num]; if (counts[num] > cnt) { majority = num; cnt = counts[num]; } } return majority;
时间: 2024-03-19 09:40:29 浏览: 56
这段代码是用来找出一个数组中出现次数最多的元素,即所谓的“多数元素”。它使用了unordered_map来记录每个元素出现的次数,并使用两个变量majority和cnt来记录当前出现次数最多的元素和它的出现次数。在遍历数组中的每个元素时,如果它的出现次数大于cnt,则将majority更新为该元素,cnt更新为它的出现次数。最后返回majority即可。
相关问题
struct Graph { unordered_map<int, Point> points; unordered_map<int, unordered_map<int, int>> edges; void addPoint(int id, string name, string intro) { points[id] = Point(id, name, intro); } void addEdge(int from, int to, int weight) { edges[from][to] = weight; edges[to][from] = weight; } };
这段代码是一个图的数据结构的实现,包含点和边的信息。其中,点用一个 `unordered_map` 存储,键为点的id,值为一个 `Point` 类型,存储了点的名称和介绍。边用一个二维的 `unordered_map` 存储,键为起点id,值为一个 `unordered_map`,二级键为终点id,值为边的权重。
该数据结构提供了两个方法:`addPoint` 和 `addEdge`,用于向图中添加点和边。其中,`addPoint` 接收三个参数,点的id、名称和介绍,将其封装成 `Point` 类型并添加到 `points` 中。而 `addEdge` 接收三个参数,边的起点、终点和权重,将其添加到 `edges` 中。需要注意的是,由于是无向图,因此在添加边的时候,需要将起点和终点都添加到 `edges` 中,并设置相同的权重。
unordered_map<int, int> counts;
这是一个 C++ 中的 unordered_map 容器,用来存储键值对,其中键为 int 类型,值为 int 类型。这个容器可以用来计数某些元素的出现次数。比如,如果你有一个整数数组,想统计每个整数出现的次数,可以使用这个容器来实现。可以通过 counts[key]++ 的方式来增加某个键的值,如果这个键不存在,那么会自动插入一个新的键值对,值为 0。
阅读全文