java编写的公共钥匙盒_公共钥匙盒.java
import java.util.ArrayList;
import java.util.Scanner;
/*
* 1.利用集合存入教师数据,初始化钥匙序列N, K:教师人数 时间记录器:time, 集合存储要归还的钥匙
* 2.还钥匙:根据当前时间判断归还钥匙的老师,将钥匙序号存入集合,排序,再依次放回数组中
* 3.取钥匙:根据当前时间,判断能使用钥匙的老师,执行取钥匙方法
* 教师: w:钥匙号 s:开始上课 c:上课时间 e:s+c 结束时间
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//存老师
ArrayList arrt1 = new ArrayList();
//存要归还的钥匙
ArrayList key = new ArrayList();
int time = 1;
int N = sc.nextInt();
int K = sc.nextInt();
int[] arr = new int[N];
for (int i = 0; i < arr.length; i++) {
arr[i] = i + 1;
}
for (int i = 1; i <= K; i++) {
Teacher t = new Teacher(sc.nextInt(), sc.nextInt(), sc.nextInt());
arrt1.add(t);
}
//结束条件是当前时间大于最后一个老师上完课的时间
while(time <= maxTime(arrt1)){
returnKey(time, arrt1, arr, key);
borrowKey(time, arrt1, arr);
time++;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
public static void returnKey(int time, ArrayList arrt1, int[] arr, ArrayList key) {
//清空放置要归还钥匙的集合
key.clear();
//判断这个时间是否有需要归还钥匙的老师
for (int i = 0; i < arrt1.size(); i++) {
if (arrt1.get(i).e == time) {
key.add(arrt1.get(i).w);
}
}
if (key.isEmpty()) {
//没有钥匙则不归还
return;
} else {
//将要归还的钥匙从大到小排序
for (int i = 0; i < key.size() - 1; i++) {
for (int j = 0; j < key.size() - 1 - i; j++) {
if (key.get(j) > key.get(j + 1)) {
int temp = key.get(j);
key.set(j, key.get(j + 1));
key.set(j + 1, temp);
}
}
}
//归还钥匙
for (int i = 0, j = 0; i < arr.length; i++) {
if(arr[i] == 0){
arr[i] = key.get(j);
if(key.size()-1 == j){
break;
}else{
j++;
}
}
}
}
}
public static void borrowKey(int time, ArrayList arrt1, int[] arr){
for (int i = 0; i < arrt1.size(); i++) {
//判断在当前时间能够使用钥匙的老师
if(time == arrt1.get(i).s){
//取走钥匙
for (int j = 0; j < arr.length; j++) {
if(arrt1.get(i).w == arr[j]){
arr[j] = 0;
break;
}
}
}
}
}
public static int maxTime(ArrayList arrt1){
int temp = 0;
for (int i = 0; i < arrt1.size(); i++) {
if(arrt1.get(i).e > temp){
temp = arrt1.get(i).e;
}
}
return temp;
}
}
class Teacher {
int w;
int s;
int c;
int e;
public Teacher(int w, int s, int c) {
this.w = w;
this.s = s;
this.c = c;
this.e = this.s + this.c;
}
}
一键复制
编辑
Web IDE
原始数据
按行查看
历史
java编写的公共钥匙盒_公共钥匙盒.java相关推荐
- java编写大数据分析模型_如何用Java(DOM分析器)编写XML文件
java编写大数据分析模型 Earlier we learned how to read XML file and how to edit XML file in java using DOM Par ...
- 用java编写的爱情红心_如何用java实现每天给对象发情话
一.引言 最近看到一篇用js代码实现表白的文章,深有感触. 然后发现自己也可以用java代码实现,然后就开始写代码了,发现还挺有意思的,话不多说开搞 实现思路: 使用HttpClient远程获取彩虹屁 ...
- 用java编写战舰 游戏吗_如何在Java中正确建模战舰游戏
我正在尝试为我的小组在大学里做的"游戏"项目创建战舰游戏.我之前从未真正使用过GUI,几乎所有输出都在Eclipse控制台中. 首先,我创建了一个GUI类,它实际上是我的" ...
- 应用java编写 按键小脚本_一个使用JAVA编写的类似按键精灵的程序
import java.io.*; import java.util.*; import java.awt.*; import java.awt.event.*; /** * 支持脚本文件的按键控制程 ...
- java编写一个汽车出租管理程序_怎么用java做汽车出租管理程序
展开全部 车辆出租管理系统 一.项目功能:设计程序,可以管理各种出租汽车e69da5e887aa62616964757a686964616f31333332623331并计算其租金.说明:程序主要管理 ...
- java反射获取方法内部_公共技术点之 Java 反射 Reflection
本文为 Android 开源项目源码解析 公共技术点中的 Java 反射 部分 分析者:Mr.Simple,校对者:Trinea,校对状态:未完成 1. 了解 Java 中的反射 1.1 什么是 Ja ...
- java编写代码用什么_如何学习用Java编写代码:为什么要学习以及从哪里开始
java编写代码用什么 by John Selawsky 约翰·塞劳斯基(John Selawsky) 如何学习用Java编写代码:为什么要学习以及从哪里开始 (How to learn to cod ...
- java编写排序的代码_在Java 8之前,您编写了几行代码来对对象集合进行排序?...
java编写排序的代码 在Java 8之前,您编写了几行代码来对对象集合进行排序? Java 8您需要多少个? 您可以在Java 8中用一行完成. 让我们看看下面的Employee类. public ...
- 用java编写一个图书管理系统_手把手教你编写第一个java程序
安装完jdk后我们就可以试着编写第一个java程序了,让我们一起来试试吧! 第一步 点击开始--所有程序--附件--记事本,新建记事本,输入以下代码: class HelloWorld { publi ...
- java编写计算类加减乘除_老师要求张浩使用面向对象的思想编写一个计算器类(Calculator),可以实现两个整数的加减乘除的运算.java...
导航:网站首页 > 老师要求张浩使用面向对象的思想编写一个计算器类(Calculator),可以实现两个整数的加减乘除的运算.java 时间:2019-4-10 老师要求张浩使用面向对象的思想编 ...
最新文章
- asp.net mvc 学习
- qrcode生产带logo_“白板”口罩打上LOGO装名牌 警方重拳出击清市场
- 样本量极少如何机器学习?最新Few-Shot Learning综述
- 微信开发直接访问本地调试
- inline hook学习
- java地图瓦片_百度地图瓦片层级范围对照表
- js构造函数内存在的闭包
- WPF自定义控件的三种方式
- java 同步 异步 阻塞 非阻塞_Java日志正确使用姿势,大白话搞懂什么是同步/异步/阻塞/非阻塞...
- 分布式搜索引擎ElasticSearch(四) -- 插件使用
- vue 插槽的版本变化1.x-2.6.0-3.x(详细)
- Visio2013 64位下载安装以及破解激活教程
- 移动硬盘弹出文件或目录损坏且无法读取解决办法
- 树莓派 配置中文环境
- 个人网站设计需求分析
- vue3关闭语法错误提示
- gavin中文是什么意思_Gavin[加文,盖温]英文名的中文翻译意思、发音、来源及流行趋势-千代英文名...
- K8S的apiVersion版本详解
- 我欲封神——JAVA封神之路
- 卡片游戏--循环队列实现