Leetcode-911 Online Election(在线选举)

本文介绍了一种使用C++实现的算法,该算法通过记录每次投票的时间和候选人,找到在特定时间点领先的候选人。算法首先遍历所有投票,记录每个候选人的得票数,并在每次更新得票数时检查是否产生了新的领先候选人。然后,算法提供了一个查询函数,用于返回在给定时间点领先的候选人。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 class TopVotedCandidate
 2 {
 3     public:
 4         vector<pair<int,int>> List;
 5         TopVotedCandidate(vector<int> persons, vector<int> times)
 6         {
 7             map<int,int> m;
 8             int max_count = 0;
 9             int man = 0;
10             for(int i = 0 ; i < times.size(); i ++)
11             {
12                 auto tmp = m.find(persons[i]);
13                 if(tmp != m.end())
14                 {
15                     m[persons[i]] ++;
16                 }
17                 else
18                 {
19                     m[persons[i]] = 1;
20                 }
21                 if(m[persons[i]] >= max_count)
22                 {
23                     max_count = m[persons[i]];
24                     man = persons[i];
25                 }
26 
27                 List.push_back(make_pair(times[i],man));
28             }
29         }
30 
31         int q(int t)
32         {
33             for(int i = 0; i < List.size()-1; i ++)
34             {
35                 if(t >= List[i].first && t < List[i+1].first)
36                     return List[i].second;
37             }
38             return List[List.size()-1].second;
39         }
40 };

 

转载于:https://www.cnblogs.com/Asurudo/p/9692363.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值