题目
题解
class TopVotedCandidate {
// 人获得的票数
Map<Integer,Integer> cntMap = new HashMap<>();
// 当前时间领先的人
TreeMap<Integer,Integer> tm = new TreeMap<>();
public TopVotedCandidate(int[] persons, int[] times) {
int maxPersonId = -1;
for(int i = 0;i < persons.length;i++) {
// 人的得票增加
int cnt = cntMap.getOrDefault(persons[i],0) + 1;
cntMap.put(persons[i],cnt);
// 之前得票最多的人,getOrDefault方法,若存在key返回value,不存在返回第二个参数值,可以返回null
int maxCnt = cntMap.getOrDefault(maxPersonId,0);
if(cnt >= maxCnt) {
maxPersonId = persons[i];
}
// 维护当前时间得票最多的personId
tm.put(times[i],maxPersonId);
}
}
public int q(int t) {
return tm.floorEntry(t).getValue();
}
}
/**
* Your TopVotedCandidate object will be instantiated and called as such:
* TopVotedCandidate obj = new TopVotedCandidate(persons, times);
* int param_1 = obj.q(t);
*/
通关详情
u1s1,我看不懂题目,挑了个差不多能懂什么意思的!