needs: user can jump key doses unit once time

package com.microsoft.controller;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.UUID;

public class MicrosoftBridgeController {
	
	public static void main(String[] args) {
		System.out.println("Hello World!");
		List<Integer> intList=new ArrayList<Integer>();
		intList.add(1);
		intList.add(6);
		intList.add(3);
		intList.add(5);
		intList.add(2);
		int hurdleRaceRet=hurdleRace(4,intList);
		System.out.println(hurdleRaceRet);
	}
	
	/**
	 * needs:
	 * user can jump key doses unit once time : parameter k
	 * hight list is building's hight: parameter height
	 * constraints:
	 * 1<=k<=100
	 * 1<=hight[i]<=100
	 * 0<=i<n(n is building hight list size) 
	 * return
	 * user need drink how much doses unit drinking that this player can jump over all over the building
	 * condition:
	 * check jump once time and compute heighest drinking doses units;
	 * result output is :
	 * 0 or more
	 * @param k
	 * @param height
	 * @return
	 */
	public static int hurdleRace(int k,List<Integer> height) {
		if(k<1 || k>100) {
			return 0;
		}
		for (int i = 0; i < height.size(); i++) {
			if(height.get(i)<1 || height.get(i)>100) {
				return 0;
			}
		}
		List<PlayerJumpBuildingLog> playerJumpBuildingLogList=new ArrayList<PlayerJumpBuildingLog>(); 
		for(Integer buildingDosesUnit : height) {
			PlayerJumpBuildingLog playerJumpBuildingLog=new PlayerJumpBuildingLog();
			playerJumpBuildingLog.setId(UUID.randomUUID().toString());
			playerJumpBuildingLog.setName("");
			playerJumpBuildingLog.setCustBuilding_id("");
			playerJumpBuildingLog.setUserUsingDosesUnitJumpHeight(k);
			int unitsCostDrinkingDoses=buildingDosesUnit-k;
			playerJumpBuildingLog.setUnitsCostDrinkingDoses(unitsCostDrinkingDoses);
			if(k==1 || k==2) {
				playerJumpBuildingLog.setDiffPlayerAbilityflag(DiffRaceAbilityFlag.ASCIALSPECIAL.name());
			}else if(k==3) {
				playerJumpBuildingLog.setDiffPlayerAbilityflag(DiffRaceAbilityFlag.EUROPEANSOURTH.name());
//			}else if() {
//				
//			}
			playerJumpBuildingLogList.add(playerJumpBuildingLog);
		}
		Collections.sort(playerJumpBuildingLogList,new Comparator<PlayerJumpBuildingLog>() {
					public int compare(PlayerJumpBuildingLog o1, PlayerJumpBuildingLog o2) {
						if(o1.getUnitsCostDrinkingDoses()>o2.getUnitsCostDrinkingDoses()) {
							return 1;
						}else if(o1.getUnitsCostDrinkingDoses()<o2.getUnitsCostDrinkingDoses()) {
							return -1;
						}
						return 0;
					}
				}
		);
		List<Integer> racingIntegerJumpUnitsCostList=new ArrayList<Integer>();
		playerJumpBuildingLogList.forEach(e->{
			racingIntegerJumpUnitsCostList.add(e.getUnitsCostDrinkingDoses());
		});
		int jumpUnitsCost=racingIntegerJumpUnitsCostList.get(racingIntegerJumpUnitsCostList.size()-1);
		return jumpUnitsCost;
	}
}

class Player{
	private String id;
	private String name;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}

class CustBuilding{
	private String id;
	private String name;
	private Integer buildingHeight;
	private String buildingStationAdstress;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getBuildingHeight() {
		return buildingHeight;
	}
	public void setBuildingHeight(Integer buildingHeight) {
		this.buildingHeight = buildingHeight;
	}
	public String getBuildingStationAdstress() {
		return buildingStationAdstress;
	}
	public void setBuildingStationAdstress(String buildingStationAdstress) {
		this.buildingStationAdstress = buildingStationAdstress;
	}
	
}

class PlayerJumpBuildingLog{
	private String id;
	private String name;
	private Integer userUsingDosesUnitJumpHeight;
	private String diffPlayerAbilityflag;
	private Integer unitsCostDrinkingDoses;
	private String player_id;
	private String custBuilding_id;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getUserUsingDosesUnitJumpHeight() {
		return userUsingDosesUnitJumpHeight;
	}
	public void setUserUsingDosesUnitJumpHeight(Integer userUsingDosesUnitJumpHeight) {
		this.userUsingDosesUnitJumpHeight = userUsingDosesUnitJumpHeight;
	}
	public String getDiffPlayerAbilityflag() {
		return diffPlayerAbilityflag;
	}
	public void setDiffPlayerAbilityflag(String diffPlayerAbilityflag) {
		this.diffPlayerAbilityflag = diffPlayerAbilityflag;
	}
	public Integer getUnitsCostDrinkingDoses() {
		return unitsCostDrinkingDoses;
	}
	public void setUnitsCostDrinkingDoses(Integer unitsCostDrinkingDoses) {
		this.unitsCostDrinkingDoses = unitsCostDrinkingDoses;
	}
	public String getPlayer_id() {
		return player_id;
	}
	public void setPlayer_id(String player_id) {
		this.player_id = player_id;
	}
	public String getCustBuilding_id() {
		return custBuilding_id;
	}
	public void setCustBuilding_id(String custBuilding_id) {
		this.custBuilding_id = custBuilding_id;
	}
}

enum DiffRaceAbilityFlag{
	AMERICAN("1","美国",5),
	EUROPEANTOP3("2","欧洲英国德国法国",6),
	EUROPEANNORTH("3","欧洲西部欧洲",3),
	EUROPEANSOURTH("4","欧洲南部 东部欧洲 西部俄罗斯",3),
	ASCIALSPECIAL("5","亚洲代表HK",1)
	;
	private DiffRaceAbilityFlag(String key, String desc,Integer intAblity) {
		// TODO Auto-generated constructor stub
		this.key=key;
		this.desc=desc;
		this.intAblity=intAblity;
	}
	private String key;
	private String desc;
	private Integer intAblity;
}

#牛客AI配图神器#

#春招至今,你收到几个面试了?##哪些公司一直卡在简历筛选##通信/硬件的薪资开多少,才值得去?##平台or薪资 硬件uu更看重哪个##Agent面试会问什么?#
Java技术 文章被收录于专栏

JavaEE技术 编程开发经验 企业通用技术

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务