911. 在线选举

news/2025/1/15 16:18:30/文章来源:https://www.cnblogs.com/WrRan/p/18407479
题目链接 911. 在线选举
思路 二分
题解链接 [Python/Java/JavaScript/Go] 二分查找
关键点 理解题意:预处理 - 按照times得出每个离散时刻下获胜者的person;询问 - 二分查找到>t的前一个时刻获胜者
时间复杂度 \(O(n)\)
空间复杂度 \(O(n)\)

代码实现:

class TopVotedCandidate:def __init__(self, persons: List[int], times: List[int]):n = len(times)self.times = timesself.answer = [-1] * ncnts = defaultdict(int)winner = Nonefor i, person in enumerate(persons):cnts[person] += 1if winner is None or cnts[person] >= cnts[winner]:winner = personself.answer[i] = winnerself.n = ndef q(self, t: int) -> int:left, right = -1, self.nwhile left + 1 < right:mid = (left+right) // 2if self.times[mid] <= t:left = midelse:right = midreturn self.answer[right - 1]
Python-标准库
class TopVotedCandidate:def __init__(self, persons: List[int], times: List[int]):n = len(times)self.times = timesself.answer = [-1] * ncnts = defaultdict(int)winner = Nonefor i, person in enumerate(persons):cnts[person] += 1if winner is None or cnts[person] >= cnts[winner]:winner = personself.answer[i] = winnerdef q(self, t: int) -> int:return self.answer[bisect_right(self.times, t) - 1]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/795221.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

今天学习和总结

学习了简单的算法知识排序中的快速排序,利用分治的思想来实现快速排序,对于前后大小有问题的进行swap的交换位置,这是基本的模版和源码 include using namespace std; define N 1000100 int A[N]; void quick_sort(int a,int b){ if(a>=b)return ; int i=a-1,j=b+1,x=A[a+b&…

代码整洁之道--读书笔记(7)

代码整洁之道简介: 本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更…

痞子衡嵌入式:在MDK开发环境下自定义安装与切换不同编译器版本的方法

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是在MDK开发环境下自定义安装与切换不同编译器版本的方法。Keil MDK 想必是嵌入式开发者最熟悉的工具之一了,自 2005 年 Arm 公司收购 Keil 公司之后,MDK 就走上了发展快车道,从 v2.50a 一路狂奔到现在最新的…

思源笔记-S3-七牛云-多设备同步

文档参考:思源笔记配置 S3 同步、思源笔记使用七牛云 编写日期:2024.9.9一、思源笔记安装思源笔记官方下载地址选择对应系统版本进行下载双击【SiYuan Installer.exe】进行安装二、注册账号注册账号是为了购买订阅,订阅后才提供 S3/WEBDAV 同步功能打开 SiYuan点击左上角-「…

JMeter性能测试快速入门

1.安装Jmeter Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。 1.1.下载 可以Apache Jmeter官网下载,地址:http://jmeter.apache.org/download_jmeter.cgi 1.2.解压 因为下载的是zip包,解压缩即可使用,目录结构如下:其中的bin目录就是执行…

基于Axis 1.4的Web Service入门

最近有个客户使用的是Axis 1.4创建的Web Service,很久没用了,所以整理下这块的知识。 基于JDK 1.8和Eclipse Mars开发一个简单的Hello world Web Service public interface HelloService {String hello(String name);} public class HelloServiceImpl implements HelloServic…

第四周作业

1、安装burp并实现抓取HTTP站点的数据包(HTTPS站点暂时不要求) 下方练习已完成 2、练习Tomcat PUT方法任意写文件漏洞(CVE-2017-12615),提供蚁剑连接成功截图 # 搜索镜像 docker search cve-2017-12615 # 拉取镜像 docker pull cved/cve-2017-12615 # 查看该镜像的详细信息…

MIT6.824 课程-Raft

Fault Tolerance - Raft 容错模式 我们已经学习了以下几种容错模式(fault-tolerance pattern):计算冗余:MapReduce,但是所有计算由单点 Master 进行调度。 数据冗余:GFS,也是依赖单点 Master 来对多个副本进行选主。 服务冗余:VMware-FT 依赖单个 TestAndSet 操作可以看…

9/10论文学习笔记

1.CPLEX是什么? 2.an apparent-tardiness-cost-with-setup (ATCS)是什么? a basic simulated annealing (SA)基本模拟退火算法 the threshold-accepting (TA) method 阈值接收算法

[Embodied AI Tutorial] The Basic Frameworks and Techniques for Embodied AI (Part2)

目录Embodied AI Tutorial课程内容Modeling and approaches for Embodied AIWorld ModelGet a Good PolicyPlanning And ControlSimulation technology for Embodied AIRigid body simulationCamera simulationAsserts相关链接资料查询 Embodied AI Tutorial 课程主页: slides…

MIT6.824 课程-GFS

GFS原文:https://zhuanlan.zhihu.com/p/113161014 搬运用于参考学习概述 存储(Storage)是一个非常关键的抽象,用途广泛。 GFS 论文还提到了很多关于容错、备份和一致性的问题。 GFS 本身是 Google 内部一个很成功的实用系统,其关键点被很好的组织到一块发表成为了学术论文…