import java.util.HashMap;
import java.util.Map;
public class TopVotedCandidate {
/**
* 在每个时刻的获胜者
*/
private int[] winners;
private int[] times;
private int len;
// 参考资料:https://unclegem.cn/2019/05/10/Leetcode学习笔记-911-在线选举/
public TopVotedCandidate(int[] persons, int[] times) {
this.len = persons.length;
this.times = times;
this.winners = new int[len];
// 存当前时刻投票最多的用户
Map<Integer, Integer> hash = new HashMap<>();
int winner = -1;
for (int i = 0; i < len; i++) {
hash.put(persons[i], hash.getOrDefault(persons[i], 0) + 1);
if (hash.getOrDefault(winner, 0) <= hash.get(persons[i])) {
winner = persons[i];
}
winners[i] = winner;
}
}
public int q(int t) {
// 找第一个小于等于的时刻,大于的肯定不是
int left = 0;
int right = this.len - 1;
while (left < right) {
int mid = left + (right - left + 1) / 2;
if (this.times[mid] > t) {
right = mid - 1;
} else {
left = mid;
}
}
return this.winners[left];
}
}

DdddJMs__135
- 粉丝: 3147
最新资源
- ec2-jvm-1.0.56.jar
- tock-bot-connector-twitter-24.9.0.jar
- wisp-logging-testing-2023.09.25.141851-9e6d321.jar
- ecr-jvm-1.0.9-sources.jar
- pact-jvm-provider-sbt-1.7.jar
- elasticloadbalancing-jvm-1.4.116.jar
- ecrpublic-1.2.49-javadoc.jar
- weblate-spring-0.3.1-javadoc.jar
- sparkling-water-doc_2.11-3.36.0.1-1-2.3-scaladoc.jar
- elasticache-jvm-1.4.101-javadoc.jar
- arczonalshift-jvm-1.3.101-javadoc.jar
- tock-analytics-chatbase-20.9.2.jar
- fms-jvm-1.0.24-sources.jar
- spark_embedded_2.13-0.0.91-javadoc.jar
- b2bi-jvm-1.0.49.jar
- async-extensions-tvosarm64-2.0.1-javadoc.jar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


