911在线选举
class TopVotedCandidate {
public:
vector<int> win;
vector<int> time;
TopVotedCandidate(vector<int>& persons, vector<int>& times) {
int n = persons.size();
vector<int> sum(n+1, 0);
int maxT = 0, maxD = 0;
for (int i = 0; i < n; i++) {
sum[persons[i]]++;
if (sum[persons[i]] >= maxT) {
maxT = sum[persons[i]];
maxD = persons[i];
}
win.push_back(maxD);
this->time = times;
}
}
int q(int t) {
int j = upper_bound(time.begin(), time.end(), t) - time.begin() - 1;
return win[j];
}
};

查看14道真题和解析