Algorithm 瑞鼎思必得
来源:互联网 发布:猎枪缩口数据 编辑:程序博客网 时间:2024/04/30 00:46
public class ReadingSpeed {
Map<Integer, Customer> customerMap = new Hashtable<Integer, Customer>();
// 输入customerMap的数据
// while(customerStream.hasNext()){
// Customer customer= customerStrem.next();
// customerMap.put(customer.getId(),customer);
//bookid
Map<Integer,Map<Integer,Customer>> bookReaderMap = new Hashtable<Integer,Map<Integer,Customer>>();
void updateReadingSpeeds(int customerID, int bookID, int pageNumber){
if(bookReaderMap.containsKey(bookID)){
Map<Integer, Customer> readers=bookReaderMap.get(bookID);
if(readers.containsKey(customerID)){//有客户
Customer customer=readers.get(customerID);
customer.reFresh(pageNumber);
readers.put(customerID, customer);
bookReaderMap.put(bookID, readers);
}else{//没客户
Customer customer=new Customer(customerID);
customer.reFresh(pageNumber);
readers.put(customerID, customer);
bookReaderMap.put(bookID, readers);
}
}else{ //假如连这本书都没有 那肯定也是还没有读这本书的客户了
Map<Integer,Customer> readers=new Hashtable<Integer, Customer>();
Customer customer=readers.get(customerID);
customer.reFresh(pageNumber);
readers.put(customerID, customer);
bookReaderMap.put(bookID, readers);
}
}
void printLeaderboard(int bookID) {
List<Customer> rank= new ArrayList<Customer>();
if(!bookReaderMap.containsKey(bookID)){
System.out.println("no such book");
}else{
Map<Integer,Customer> readers=bookReaderMap.get(bookID);
Iterator<Integer> iter=readers.keySet().iterator();
while(iter.hasNext()){
Integer customerId=(Integer) iter.next();
Customer customer=readers.get(customerId);
rank.add(customer);
}
Collections.sort(rank,new SortByReadingSpeed());
int i=0;
for (Customer customer : rank) {
i++;
System.out.println(customer.getID()+" "+customer.getSpeed()+" "+i);
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
private static final class SortByReadingSpeed implements Comparator<Customer> {
public int compare(Customer o1, Customer o2) {
int compare = o2.getSpeed() - o1.getSpeed();
return compare;
}
}
}
——————————————————————————————————————————————————————————-
public class Customer {
private int ID;
private List<Integer> page;
private int speed=0;
public Customer(int ID){
this.ID=ID;
this.page=new ArrayList<Integer>();
}
public int getID() {
return ID;
}
public void setID(int iD) {
ID = iD;
}
public List<Integer> getPage() {
return page;
}
public void setPage(List<Integer> page) {
this.page = page;
}
public void reFresh(int pageNum){
this.page.add(pageNum);
}
public int getSpeed() {
return speed;
}
public void setSpeed(List<Integer> pages) {
int maxSpeed=0;
int time=pages.size()-1;
for(int i=0;i<10;i++){
if(time<=1){
break;
}
int currentSpeed=pages.get(time)-pages.get(time-1);
time--;
if(currentSpeed>maxSpeed){
maxSpeed=currentSpeed;
}
}
this.speed=maxSpeed;
}
}
- Algorithm 瑞鼎思必得
- 秘书心理课之必得
- 施必得吴兴科创园展厅设计
- Algorithm
- Algorithm
- algorithm
- algorithm
- algorithm
- algorithm
- algorithm
- Algorithm
- Algorithm
- algorithm
- Algorithm
- Algorithm
- algorithm
- algorithm
- <algorithm>
- 组队赛2 - 2014.7.20 - 2013长春现场赛
- stm8及DS1302的一些操作
- Scala获取异常信息后将其放入String中的实现方式
- 关于俄罗斯方块问题,想的头都炸了!!!
- 世界上最短的数字判断代码
- Algorithm 瑞鼎思必得
- Regular Expression Matching
- 黑马程序员_基础html css 学习(二)
- G - The Unique MST(最小生成树的次生成树)
- 在libuv中使用openssl建立ssl连接
- 黑马程序员_如何制作帮助文档?
- [PAT]1001. 害死人不偿命的(3n+1)猜想
- pl SQL 学习笔记(五)oracle 游标
- 【读入】#36 A. Extra-terrestrial Intelligence