思路:主要是预处理,记录一个当前时刻最大值,遍历times数组,得到每个时刻的领先人,方法是记录一个当前的最大值,比较当前时刻得票人和之前领先人的得票数就行了,最后二分查找要求的时刻之前的那个投票时刻的领先人。

class TopVotedCandidate {
public:int ticket[5005];  //票数int late[5005];    //下标为i的人最近一次得票的时间。vector <int> an;vector <int> m_times;int mmax,nowmax;int mi,nowi;int l,l2;TopVotedCandidate(vector<int>& persons, vector<int>& times) {memset(ticket,0,sizeof(ticket));l = times.size();m_times = times;l2 = persons.size();mmax = nowmax = -1;for(int i = 0; i < l; i++){ticket[persons[i]]++;late[persons[i]] = times[i];nowmax = ticket[persons[i]];nowi = persons[i];if(nowmax > mmax || (nowmax == mmax && late[nowi] > late[mi])){mmax = nowmax;mi = nowi;}//    cout << mi << endl;an.push_back(mi);}}int q(int t) {if(t < m_times[0]){return -1;}else if(t > m_times[l-1]){return an[l-1];}else{int x = lower_bound(m_times.begin(), m_times.end(), t) - m_times.begin();if(m_times[x] != t){x--;}//    cout << t << " " << x  << endl;return an[x];}}
};/*** Your TopVotedCandidate object will be instantiated and called as such:* TopVotedCandidate* obj = new TopVotedCandidate(persons, times);* int param_1 = obj->q(t);*/

![](https://img-blog.csdnimg.cn/b046879bdb85477ab244b0bf0055a6e0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,

leetcode每日一题 911在线选举相关推荐

  1. LeetCode:911. 在线选举————中等

    题目 911. 在线选举 给你两个整数数组 persons 和 times .在选举中,第 i 张票是在时刻为 times[i] 时投给候选人 persons[i] 的. 对于发生在时刻 t 的每个查 ...

  2. leetcode 911在线选举

    911. 在线选举 难度中等109 给你两个整数数组 persons 和 times .在选举中,第 i 张票是在时刻为 times[i] 时投给候选人 persons[i] 的. 对于发生在时刻 t ...

  3. leetcode每日刷题计划-简单篇day8

    leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...

  4. Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)

    思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...

  5. 【LeetCode每日一题】1723. 完成所有工作的最短时间

    [LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...

  6. leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用

    leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...

  7. LeetCode每日一题——1812. 判断国际象棋棋盘中一个格子的颜色

    LeetCode每日一题系列 题目:1812. 判断国际象棋棋盘中一个格子的颜色 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个坐标 coordinates ...

  8. 【LeetCode每日一题】——109.有序链表转换二叉搜索树

    文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[题目提示] 七[解题思路] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 二叉树 二[题 ...

  9. leetcode每日一题·救生艇问题(Python)

    leetcode每日一题·救生艇问题(Python) 问题描述 题目入口 题目思路 首先分析问题,一个船最多坐两人,因此我们可以把这个问题看作两两组合的问题,并且如果最重的那个人和最轻的人加起来大于l ...

最新文章

  1. 图片基础知识梳理(3) BitmapBitmapFactory 解析
  2. win10只有c盘怎么分区_磁盘分区:系统C盘空间不足怎么办?
  3. 动手完善个性化弹出提示框的过程及乐趣
  4. 用matlab做纹理合成,关于图像纹理合成的Matlab例程
  5. c语言必考面试题,c语言面试最必考的十道试题,求职必看!!!
  6. 初恋为何成为最美的爱情(下)
  7. ios 对日期的处理(包括计算昨天时间、明天时间)
  8. InstallShield12豪华版破解版下载|InstallShield下载|软件打包工具
  9. 小学六年级下册计算机计划,小学信息技术六年级下册教学计划
  10. 欢迎页面welcome.jsp
  11. mysql触发器安全吗_猎八哥浅谈MYSQL触发器
  12. mysql mtq_Mysql常用简介 - osc_r3mtqivi的个人空间 - OSCHINA - 中文开源技术交流社区
  13. 如何学习(1):构建全栈式知识结构
  14. 日均5亿查询量,京东到家订单中心ES架构演进
  15. JAVA利用keytool工具生成.crt和.key文件
  16. F2FS数据块寻址(linux5.18.11)
  17. 力扣解法汇总2045-到达目的地的第二短时间
  18. Mac小技巧之mac系统如何隐藏dock栏
  19. 分析:4年前的iPhone 8 Plus,相当于什么价位的安卓手机?
  20. 机器学习-周志华-课后习题-绪论

热门文章

  1. BBTRZ柔性矿物质绝缘防火电缆的优势
  2. 基于计算机视觉的手势识别技术
  3. 为什么从此电脑访问不了ftp_巧用FTP来管理手机文件 从此摆脱USB
  4. Anaconda之通过可视化界面配置虚拟环境
  5. Hadoop期末总结
  6. GO语言gin框架实战-02-Jwt和登录认证
  7. jsp基于java廉价房屋租赁管理系统
  8. IPsec中IKE与ISAKMP过程分析(主模式-消息5和消息6)
  9. 【前端基础知识】最基础的render渲染函数知识,一看就会
  10. scrollTo函数处理页面滚动问题