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;
}
Java技术 文章被收录于专栏
JavaEE技术 编程开发经验 企业通用技术