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技术 编程开发经验 企业通用技术

全部评论

相关推荐

岗位领域:云计算岗位职责:1、负责块、文件、对象和AI存储的研发工程师,包括自研存储引擎的开发,负责相应产品的研发设计、开发及疑难问题解决,支撑公司千亿级以上索引的访问,保证业务的稳定性;2、解决超大规模存储系统面临的核心挑战,包括但不限于:千亿级元数据/索引的高效管理、EB级别集群扩容下的数据平滑迁移与IO稳定性保障,以及跨地域场景下的数据一致性、容灾与低成本归档等;3、编写高质量、架构优雅、性能卓越、可读性强的代码;保证良好的业务可持续性,良好的运维体验;4、通过软件优化、引入高性能比的新硬件,在保证用户体验的前提下,持续降低存储成本,提升系统性能与可靠性;5、深入存储内核与分布式系统核心模块,如元数据管理、数据分布、一致性协议等高级特性的设计、开发与深度调优。任职要求:1、本科及以上学历,计算机软件或相关专业;2、掌握、熟练go、C++/c中的一种以上语言,熟悉linux/unix编程环境;3、2年及以上存储相关研发经历;4、精通分布式系统、存储系统研发,熟悉常见存储技术栈(如Ceph、Lustre、BeeGFS等),精通linuxIO系统、网络系统,精通高性能系统者优先;5、具备较强技术攻关能力、系统化思维,能独立负责架构设计与关键模块实现。福利待遇、薪资面议;
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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