当前位置: 首页 > news >正文

[编程题]数据库连接池 - 牛客网题解

Web系统通常会频繁地访问数据库,如果每次访问都创建新连接,性能会很差。为了提高性能,架构师决定复用已经创建的连接。当收到请求,并且连接池中没有剩余可用的连接时,系统会创建一个新连接,当请求处理完成时该连接会被放入连接池中,供后续请求使用。

现在提供你处理请求的日志,请你分析一下连接池最多需要创建多少个连接。

输入描述:
输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤1000),表示请求的数量。

紧接着n行,每行包含一个请求编号id(A、B、C……、Z)和操作(connect或disconnect)。


输出描述:
对应每一组数据,输出连接池最多需要创建多少个连接。

import java.util.*;
public class Main{
    public static void main(String args[]){
        // 循环处理每一组测试用例
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            int max = 0;
            // 每一行有n条记录
            Set<String> s = new HashSet<>();
            while(0 != n){
                String id,record;
                id = sc.next();
                record = sc.next();
                // 如果是该记录是链接,将其id插入到Set中,否则删除
                if(record.equals("connect"))
                    s.add(id);
                else
                    s.remove(id);
                // 获取当前链接的最大值
                max = Math.max(max, s.size());
                n--;
            } 
            System.out.println(max);
        }
    }
}

 

相关文章:

  • 线性回归模型(OLS)3
  • 如何利用腾讯云轻量应用服务器五分钟搭建一个WordPress博客?
  • 从外到内理解c++引用
  • [极客大挑战 2019]BabySQL
  • vue3+vite+windicss+element-plus+axios+router+cookies 搭建
  • ElasticSearch docker 方式安装
  • Spring——IOC 操作 Bean 管理(FactoryBean,作用域以及bean生命周期)
  • java毕业设计成品源码网站基于javaWeb停车场车辆管理系统的设计与实现|车位
  • 【Python零基础入门篇 · 5】:占位符和格式化输入输出、标识符和保留字
  • L77.linux命令每日一练 -- 第11章 Linux系统管理命令 -- vmstat和mpstat
  • 如何安装GCC?
  • latex(overleaf)制作ppt(演示文稿)笔记
  • C#:实现将整数转换为二进制表示形式的字符串算法(附完整源码)
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • C#:实现KochSnowflake科赫雪花算法(附完整源码)
  • [译] 怎样写一个基础的编译器
  • extract-text-webpack-plugin用法
  • IDEA常用插件整理
  • JAVA 学习IO流
  • React as a UI Runtime(五、列表)
  • SwizzleMethod 黑魔法
  • Tornado学习笔记(1)
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • Vue学习第二天
  • vue学习系列(二)vue-cli
  • 精彩代码 vue.js
  • 力扣(LeetCode)56
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 微信公众号开发小记——5.python微信红包
  • 想写好前端,先练好内功
  • ​flutter 代码混淆
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • #{}和${}的区别是什么 -- java面试
  • #if #elif #endif
  • #LLM入门|Prompt#3.3_存储_Memory
  • (pytorch进阶之路)扩散概率模型
  • (WSI分类)WSI分类文献小综述 2024
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)计算机毕业设计大学生兼职系统
  • (附源码)计算机毕业设计高校学生选课系统
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)EXC_BREAKPOINT僵尸错误
  • (转载)Linux网络编程入门
  • ******之网络***——物理***
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • *1 计算机基础和操作系统基础及几大协议
  • .cfg\.dat\.mak(持续补充)
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • [.net] 如何在mail的加入正文显示图片
  • [100天算法】-不同路径 III(day 73)