1823. 找出游戏的获胜者
题目描述:
题解:
func findTheWinner(n int, k int) int {
// eg:n=5 friends = [1,2,3,4,5] 里面的值就是第几个小朋友
friends := make([]int, n)
for i := 0; i < len(friends); i++ {
friends[i] = i + 1
}
// 指针
p := 0
for {
// 如果只剩1人,就是赢家
if len(friends) == 1 {
return friends[0]
}
// 循环队列,指向k-1个后的小盆友(k-1是因为计数时需要包含起始时的那位小伙伴)
p = (p + k - 1) % len(friends)
// 指导谁,谁输
friends = append(friends[0:p], friends[p+1:]...)
}
}