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

PTA -L1-005 考试座位号

#PTA - L1-005 考试座位号
优化:
// 使用 BufferedReader:
// BufferedReader 提供了更快的输入速度,尤其是在处理大量数据时。
// 使用 br.readLine() 替代 sc.nextLine()。
// 使用 ArrayList 动态数组:
// ArrayList 可以动态调整大小,避免了固定数组大小限制的问题。
// 使用 Map 提高查询效率:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//        使用 BufferedReader:
//        BufferedReader 提供了更快的输入速度,尤其是在处理大量数据时。
//        使用 br.readLine() 替代 sc.nextLine()。
//        使用 ArrayList 动态数组:
//        ArrayList 可以动态调整大小,避免了固定数组大小限制的问题。
//        使用 Map 提高查询效率:
//        将座位号和考试信息的映射存储在 HashMap 中,查询的时间复杂度从 O(n) 降低到 O(1)。
//        避免直接访问字段:
//        使用 getter 方法访问类的私有字段,遵循了面向对象编程的封装原则。
//        简化查询逻辑:
//        通过 Map 直接获取查询结果,避免了嵌套循环。import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;class ExamCard {private String _ExamID;private int _tryseat;private int _examseat;public ExamCard() {}public ExamCard(String ExamID, int tryseat, int examseat) {this._ExamID = ExamID;this._tryseat = tryseat;this._examseat = examseat;}public String get_ExamID() {return _ExamID;}public void set_ExamID(String _ExamID) {this._ExamID = _ExamID;}public int get_tryseat() {return _tryseat;}public void set_tryseat(int _tryseat) {this._tryseat = _tryseat;}public int get_examseat() {return _examseat;}public void set_examseat(int _examseat) {this._examseat = _examseat;}
}public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));// 使用 ArrayList 动态数组存储学生信息List<ExamCard> studentInfo = new ArrayList<ExamCard>();// 读取学生数量int student_Num = Integer.parseInt(br.readLine());// 读取每个学生的信息for (int i = 0; i < student_Num; i++) {String each_stu = br.readLine();String[] my_args = each_stu.split(" ");studentInfo.add(new ExamCard(my_args[0], Integer.parseInt(my_args[1]), Integer.parseInt(my_args[2])));}// 使用 Map 存储座位号和考试信息的映射,以提高查询效率Map<Integer, ExamCard> seatMap = new HashMap<>();for (ExamCard stu : studentInfo) {seatMap.put(stu.get_tryseat(), stu);}// 读取查询的学生数量int search_num = Integer.parseInt(br.readLine());// 读取要查询的每个idString str_ids[] = br.readLine().split(" ");// 查询并输出结果for (int i = 0; i < search_num; i++) {int id = Integer.parseInt(str_ids[i]);ExamCard stu = seatMap.get(id);if (stu != null) {System.out.println(stu.get_ExamID() + " " + stu.get_examseat());}}}
}

相关文章:

  • WPF-遵循MVVM框架创建图表的显示【保姆级】
  • SpringCloud核心组件Eureka菜鸟教程
  • LaTex、pdfLaTex、XeLaTex和luaLaTex的区别和联系
  • Docker常见命令
  • 关于指针和指针算术
  • 开发常使用的团队协作工具
  • 再谈从视频中学习:从给视频打字幕的Humanoid-X、UH-1到首个人形VLA Humanoid-VLA:迈向整合第一人称视角的通用人形控制
  • 文本向量化
  • FastAPI + Redis Pub/Sub + WebSocket 组合解决方案的详细介绍
  • Redis01-基础-入门
  • 信创系统 sudoers 权限配置实战!从小白到高手
  • 引领印尼 Web3 变革:Mandala Chain 如何助力 1 亿用户迈向数字未来?
  • 刀客独家 | 潘胜接管百度移动生态市场部
  • 【Linux】Centos7 在 Docker 上安装 mysql8.0(最新详细教程)
  • 【嘉立创EDA】如何在更新或转换原理图到PCB时,保留已有布局器件
  • QML中的色彩应用
  • .dep 和.rpm有什么区别?
  • 马哥教育Linux云计算运维课程
  • 统信操作系统使用默认yum源安装 Docker 的踩坑
  • 2025通信会丨以创新技术赋能新型电力系统 锐捷知识大脑推动效率提升
  • 第一集丨《无尽的尽头》值得关注,《榜上佳婿》平平无奇
  • 孟泽:我们简化了历史,因此也简化了人性
  • 新任浙江省委常委、组织部长杨荫凯到嘉兴南湖瞻仰红船
  • 泽连斯基公布与特朗普会晤细节,强调实现全面、无条件停火
  • 中国人民银行行长潘功胜会见世界银行行长彭安杰
  • 铁线礁、牛轭礁珊瑚礁“体检”报告首次发布,专家:菲非法活动产生胁迫性影响