每日一题——找出游戏的获胜者

简介: 每日一题——找出游戏的获胜者

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:]...)
  }
}

提交结果:

相关文章
|
5月前
|
算法
力扣经典150题第三十八题:生命游戏
力扣经典150题第三十八题:生命游戏
43 0
|
6月前
滑雪(蓝桥模拟赛的题)
滑雪(蓝桥模拟赛的题)
56 0
|
6月前
leetcode-174:地下城游戏
leetcode-174:地下城游戏
45 0
|
11月前
滑雪(也是蓝桥模拟赛的题)
和蓝桥杯模拟赛的最大连通过差不多一个思想
49 0
|
算法
代码随想录算法训练营第三十二天 | LeetCode 122. 买卖股票的最佳时机 II、55. 跳跃游戏、45. 跳跃游戏 II
代码随想录算法训练营第三十二天 | LeetCode 122. 买卖股票的最佳时机 II、55. 跳跃游戏、45. 跳跃游戏 II
49 0
|
算法 C++ Python
【每日算法Day 68】脑筋急转弯:只要一行代码,但你会证吗?
【每日算法Day 68】脑筋急转弯:只要一行代码,但你会证吗?
115 0
|
算法 测试技术
【五一创作】牛客网——有理算法
【五一创作】牛客网——有理算法
87 0
|
机器学习/深度学习 存储
LeetCode——1823. 找出游戏的获胜者
LeetCode——1823. 找出游戏的获胜者
139 0
LeetCode——1823. 找出游戏的获胜者
|
Android开发
LeetCode 双周赛 98,脑筋急转弯转不过来!
大家好,我是小彭。 昨晚是 LeetCode 第 98 场双周赛,你参加了吗?这场周赛需要脑筋急转弯,转不过来 Medium 就会变成 Hard,转得过来就变成 Easy。
86 0
|
存储 人工智能 JavaScript
【寒假每日一题】AcWing 4510. 寻宝!大冒险!
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
136 0
下一篇
无影云桌面