最大访客
2014-10-06 17:14
134 查看
理论:
现将举行一个餐会,让访客事先填写到达时间与离开时间,為了掌握座位的数目,必须先估计不同时间的最大访客数。
解法:
这个题目看似有些复杂,其实相当简单,单就计算访客数这个目的,同时考虑同一访客的来访时间与离开时间,反而会使程式变得复杂;只要将来访时间与离开时间分开处理就可以了,假设访客 i 的来访时间為x[i],而离开时间為y[i]。
在资料输入完毕之后,将x[i]与y[i]分别进行排序(由小到大),道理很简单,只要先计算某时之前总共来访了多少访客,然后再减去某时之前的离开访客,就可以轻易的解出这个问题。
现将举行一个餐会,让访客事先填写到达时间与离开时间,為了掌握座位的数目,必须先估计不同时间的最大访客数。
解法:
这个题目看似有些复杂,其实相当简单,单就计算访客数这个目的,同时考虑同一访客的来访时间与离开时间,反而会使程式变得复杂;只要将来访时间与离开时间分开处理就可以了,假设访客 i 的来访时间為x[i],而离开时间為y[i]。
在资料输入完毕之后,将x[i]与y[i]分别进行排序(由小到大),道理很简单,只要先计算某时之前总共来访了多少访客,然后再减去某时之前的离开访客,就可以轻易的解出这个问题。
package 经典; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; public class MaxVisit { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { System.out.println("输入来访时间与离开时间(0~24):"); System.out.println("范例:10 15"); System.out.println("输入-1结束"); BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); ArrayList list=new ArrayList(); while(true) { System.out.println(">>"); String input=buf.readLine(); if(input.equals("-1")) break; else list.add(input); } int[] x=new int[list.size()]; int[] y=new int[list.size()]; for(int i=0; i<list.size(); i++) { String input=(String)list.get(i); String[] str=input.split(" "); x[i]=Integer.parseInt(str[0]); y[i]=Integer.parseInt(str[1]); } Arrays.sort(x); Arrays.sort(y); for(int time = 0; time < 25; time++) { System.out.println(time + " 时的最大访客数:" + MaxVisit.maxGuest(x, y, time)); } } private static int maxGuest(int[] x, int[] y, int time) { int num = 0; for(int i = 0; i < x.length; i++) { if(time > x[i]) num++; if(time > y[i]) num--; } return num; } }
相关文章推荐
- Algorithm Gossip: 最大访客数
- 最大访客数(c/python)
- C++最大访客数
- 最大访客数
- 一个时间的最大访客问题
- Algorithm Gossip (21) 最大访客数
- 生命是最大财富 2007我们需要记住的“健康数字”
- 树型DP ZOJ3527 8月月赛1008 一图N个点,N条边,取某个点会有信任点,同时某个点与它的后继结点同时取的话,它的信任点会改变一个值,问怎么取点,使得总信任点最大
- Linux 调优方案, 修改最大连接数(ulimit命令)
- 人心中的杂念是人成长道路最大的阻碍
- 二分 最大值最小化||最小值最大化 NOJ 1133
- 浏览器最大连接数、最大并行资源下载数
- ZOJ1074 最大和子矩阵 DP最大连续子序列
- 误差理论、贝叶斯、最大似然与最小二乘估计
- 欧拉工程第11题 在20×20的网格中同一直线上四个数的最大乘积是多少
- 二叉树的最大深度
- 微软面临的最大挑战:怎样支撑、管理亿万智能机器人?
- 【前端面试】 如何快速找到数组的最大值?
- IDG全球副总裁熊晓鸽:投资最大风险是创业团队
- 修改Oracle最大连接数