Java-幻想体育选秀

时间:2017-10-14 17:20:58

标签: java arrays

这里有一点问题: 问题(输入):完成函数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)的数组

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;

}