problemscpp
A collection of my answers to algorithm problems in c++.
静态 Public 成员函数 | 所有成员列表
leetcode::find_servers_that_handled_most_number_of_requests::Solution类 参考

#include <leetcode.h>

静态 Public 成员函数

static vector< int > busiestServers (int k, vector< int > &arrival, vector< int > &load)
 

详细描述

在文件 leetcode.h1983 行定义.

成员函数说明

◆ busiestServers()

vector< int > leetcode::find_servers_that_handled_most_number_of_requests::Solution::busiestServers ( int  k,
vector< int > &  arrival,
vector< int > &  load 
)
static

在文件 leetcode.cpp5262 行定义.

5262 {
5263 vector<int> ans;
5264 vector count(k, 0);
5265 set<int> available;
5266 for(int i = 0; i < k; i++) {
5267 available.insert(i);
5268 }
5269 priority_queue<event> events;
5270 for(int i = 0; i < arrival.size(); i++) {
5271 event e = {arrival[i], true, i};
5272 events.push(e);
5273 }
5274 while(!events.empty()) {
5275 event e = events.top();
5276 events.pop();
5277 if(e.start) {
5278 if(!available.empty()) {
5279 auto it = available.lower_bound(e.index % k);
5280 if(it == available.end()) {
5281 it = available.begin();
5282 }
5283 event next = {e.time + load[e.index], false, e.index, *it};
5284 events.push(next);
5285 available.erase(it);
5286 }
5287 } else {
5288 //end
5289 available.insert(e.server_index);
5290 count[e.server_index]++;
5291 }
5292 }
5293 const int maximum = *max_element(count.begin(), count.end());
5294 for(int i = 0; i < k; i++) {
5295 if(count[i] == maximum) {
5296 ans.push_back(i);
5297 }
5298 }
5299 return ans;
5300 }

被这些函数引用 leetcode::find_servers_that_handled_most_number_of_requests::TEST().


该类的文档由以下文件生成: