目录
牛客_数据库连接池(简单模拟)
解析代码
题目解析:
- 服务器后台访问数据库时,需要先连上数据库,而为了连上数据库,需要连接方和数据库服务上各自都要维护链接,而链接本身的创建维护是有成本的。
- 要减少开销,这里的解决方案就是将以前的mysql链接复用起来,从而节省了创建和销毁的时间成本,该题目就是想让你根据算法,结合日志,计算当前的业务需要预先创建多少链接,来满足正常使用。
解题思路:循环接收每组用例,对于每组用例进行如下操作: 1. 依次获取每个状态,如果该状态是"connect",则将其id插入到set中,否则删除该id 2. 获取从刚开始到目前set中的最大值 3. 输出结果
#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;
int main()
{
int n = 0;
while (cin >> n)
{
string id, op;
unordered_set<string> s;
size_t maxCon = 0;
while (n--)
{
cin >> id >> op;
if (op == "connect")
s.insert(id);
else
s.erase(id);
maxCon = max(maxCon, s.size());
}
cout << maxCon << endl;
}
return 0;
}