这里有一点问题: 问题(输入):完成函数draftPick()。函数有两个参数:一个整数数组团队表示团队的顺序和他们必须填充多少个点,一个整数i确定我们想要的顺序中的哪个团队(零索引)知道最后一个选择。
输出:函数应该返回一个整数,表示草稿顺序中的 ith 团队中的哪个玩家(零索引)将选择他们的最后一个选择
预期运行时间:O(n)
示例输入: lineArray = [5,1,2] position = 2
示例输出: 5
说明:打电话给树队A,B,C。选秀队伍首先进行A队选拔,尝试填补5个名单,B队选择第2名,填补1个名单,最后选择C队,填补2个名单位:
转1:A选择第一好的球员 转2:B选择第二好的球员 第3轮:C队选择第3名最佳球员 第4轮:A队再次挑选并获得第4名最佳球员 第5轮:由于球队已经填补了他们所有的球员名单,C队选择了第5名最佳球员(这是答案5)
尝试:尝试开发算法 - 我看到第5团队中的第i个团队有2个点需要填补。我们知道他选择的比赛顺序取决于其他元素的球员数量。我试图遍历从i = 0到i的每个元素减去(-1)的数组
答案 0 :(得分:-1)
根据我的测试,这是我制作的算法:
int draftPick(int[] teams, int target) {
int targetTeam = teams[target];
int finalPick = 0;
for(int i = 0; i <= target; i++) {
int team = teams[i];
if(team > targetTeam) team = targetTeam;
finalPick += team;
}
for(int i = (target + 1); i < teams.length; i++) {
int team = teams[i];
if(team > targetTeam - 1) team = targetTeam - 1;
finalPick += team;
}
return finalPick;
}