寻找年度最佳球员算法 JavaScript/Java

Find the player of the year Algorithm JavaScript/Java

谁能帮我解决这个问题,我不太了解示例输入格式。有人可以用这个算法的伪代码指导我吗??

有多个折线图表示不同运动队中明星球员的表现。

年度最佳球员排名第一的时间最长,即图表值保持在所有球员值之上时间最长的球员。

寻找年度最佳球员。

输入格式

第一行包含一个整数n,表示玩家的数量。 下一行包含一个整数 m,表示每个玩家的数据点数。 n 个后续行(其中 0 ≤ i < n)中的每一行 i 包含 m space 个分隔的整数,表示玩家 i 在该数据点持续时间内的相对表现。

输出格式

一个整数

示例输入

3 
4
1 3 4 5
7 2 3 4
1 3 2 1

示例输出

0

说明

Player 0 has been on the top for 3 data point durations, which is the maximum.

方法。

function Logic() {
//INPUT [uncomment & modify if required]
 let sampleInput = gets();
 let result = -404;


//OUTPUT [uncomment & modify if required]
console.log(result)

}

感谢您的帮助!

为了解释示例输入,可视化表示可能会有所帮助:

纵轴是表现,横轴是测量时刻(4个数据点),每个球员用颜色来标识。

接下来的挑战是找到在最长的连续时间段内达到最高值的条形颜色。在这种情况下,蓝色条表示连续 3 个周期(标记为 2、3 和 4)中的最大性能。

算法

在第一阶段,确定每个时期的最佳性能值。所以在示例中是:7、3、4 和 5。

然后在每个球员的表现中找到与该最高表现相匹配的最长连续序列。在这种情况下,表演序列 3、4 和 5 由玩家 0 实现,并且是最长的此类序列。

实施

一个JavaScript片段:

function getPlayerOfTheYear(series) {
    // The following two values are actually part of the input, 
    // but since this function takes a 2D array, they are implied:
    let playerCount = series.length;
    let periodCount = series[0].length;
    // 1. Collect all best performance values (= top of the "graph")
    let tops = []; 
    for (let i = 0; i < periodCount; i++) {
        // Get best performance for this particular period:
        let bestPerformance = -Infinity;
        for (let player = 0; player < playerCount; player++) {
            bestPerformance = Math.max(bestPerformance, series[player][i]);
        }
        tops.push(bestPerformance);
    }
    // 2. Per player, find longest sequence of achieving the top performance
    let longestDuration = 0;
    for (let player = 0; player < playerCount; player++) {
        let duration = 0;
        for (let i = 0; i < periodCount; i++) {
            if (series[player][i] === tops[i]) {
                duration++;
                if (duration > longestDuration) {
                    playerOfTheYear = player;
                    longestDuration = duration;
                }
            } else duration = 0;
        }
    }
    return playerOfTheYear;
}

let player = getPlayerOfTheYear([
    [1, 3, 4, 5],
    [7, 2, 3, 4],
    [1, 3, 2, 1]
]);

console.log("Player of the year: ", player);