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:]...) } }
提交结果: