Medium
A competition consists of n players numbered from 0 to n - 1.
You are given an integer array skills of size n and a positive integer k, where skills[i] is the skill level of player i. All integers in skills are unique.
All players are standing in a queue in order from player 0 to player n - 1.
The competition process is as follows:
The winner of the competition is the first player who wins k games in a row.
Return the initial index of the winning player.
Example 1:
Input: skills = [4,2,6,3,9], k = 2
Output: 2
Explanation:
Initially, the queue of players is [0,1,2,3,4]. The following process happens:
[0,2,3,4,1].[2,3,4,1,0].[2,4,1,0,3].Player 2 won k = 2 games in a row, so the winner is player 2.
Example 2:
Input: skills = [2,5,4], k = 3
Output: 1
Explanation:
Initially, the queue of players is [0,1,2]. The following process happens:
[1,2,0].[1,0,2].[1,2,0].Player 1 won k = 3 games in a row, so the winner is player 1.
Constraints:
n == skills.length2 <= n <= 1051 <= k <= 1091 <= skills[i] <= 106skills are unique.class Solution {
fun findWinningPlayer(skills: IntArray, k: Int): Int {
val n = skills.size
var max = skills[0]
var cnt = 0
var res = 0
for (i in 1 until n) {
if (skills[i] > max) {
max = skills[i]
cnt = 0
res = i
}
cnt += 1
if (cnt == k) {
break
}
}
return res
}
}