以前看了很久都没会,今天看了突然会了,其实很简单,举个例子就行
我们定义f(m,n) = m个人,每n个人杀一个的最终获胜者
那么f(10,3)就是1,2,3,4,5,6,7,8,9,10中每3个人杀一个的获胜者
那么进行完一轮后,就是4,5,6,7,8,9,10,1,2

我们对比一下原始的f(9,3)——1,2,3,4,5,6,7,8,9

其实很容易观察到这两个数列之间的关系
f(10,3) = (f(9,3) + 3 - 1)% 10 + 1
其实也就是f(m,n) = (f(m-1,n) + n - 1) % m + 1
这个-1+1只是因为题目要求从1开始,如果题目要求要求从零开始,把它们去掉就行

class Solution {public int findTheWinner(int n, int k) {if(n == 1) {return 1;}return (findTheWinner(n - 1, k) + k - 1) % n + 1;}
}

Leetcode_1823_找出游戏的获胜者_约瑟夫环相关推荐

  1. 每日一道leetcode(python)1823. 找出游戏的获胜者

    每日一道leetcode(python)1823. 找出游戏的获胜者 2021-08-07 共有 n 名小伙伴一起做游戏.小伙伴们围成一圈,按 顺时针顺序 从 1 到 n 编号.确切地说,从第 i 名 ...

  2. 1823. 找出游戏的获胜者( 约瑟夫环问题 )

    文章目录 Question Ideas 1.Answer( Java ) Code 2.Answer( Java ) Code 3.Answer( Java ) Code Question 1823. ...

  3. 约瑟夫环——递推公式详解(leetcode 1823. 找出游戏的获胜者)

    约瑟夫环--递推公式详解(leetcode 1823. 找出游戏的获胜者) 约瑟夫环问题 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知 n 个人(以编号1,2,3-n分别表示)围坐在一张圆桌周围. ...

  4. LeetCode 1823. 找出游戏的获胜者

    LeetCode 1823. 找出游戏的获胜者 文章目录 LeetCode 1823. 找出游戏的获胜者 题目描述 一.解题关键词 二.解题报告 1.思路分析 2.时间复杂度 3.代码示例 2.知识点 ...

  5. golang力扣leetcode 1823.找出游戏的获胜者

    1823.找出游戏的获胜者 1823.找出游戏的获胜者 题解 代码 1823.找出游戏的获胜者 1823.找出游戏的获胜者 题解 题目:n个位围成一个环,每次删除第k个人,求最后一个人是谁 思路:约瑟 ...

  6. 力扣每日一题2022-05-04中等题:找出游戏的获胜者

    找出游戏的获胜者 题目描述 思路 数学 C++实现 Java实现 Python实现 题目描述 找出游戏的获胜者 思路 数学 第一轮删掉第k个人,问题就变为n-1个人进行这个游戏.假设知道f(n-1, ...

  7. 0504|1823. 找出游戏的获胜者

    0504|1823. 找出游戏的获胜者 这道题使用队列也可以. 遍历 quene 时,从队尾拿出一个成员,然后再从对头插入.如此循环. 这里使用的是链表: var findTheWinner = fu ...

  8. 约瑟夫环问题- leetcode 1823. 找出游戏的获胜者

    1823. 找出游戏的获胜者 使用链表模拟 class Solution {// 模拟public int findTheWinner(int n, int k) { List<Integer& ...

  9. 找出游戏的获胜者(java)

    问题描述:(约瑟夫环) 样例输入: 代码如下:使用链表模拟法 import java.util.Scanner; public class FindTheWinner {//找出游戏的获胜者//1 & ...

最新文章

  1. IJCAI 2019精选论文一览,从底层到应用都有了
  2. 请指出document load和document ready的区别?
  3. MapReduce开发总结
  4. poj3666(DP+离散化)
  5. c# combobox集合数据不显示_VBA与数据库解决方案:Recordset记录集合的动态查询,并显示结果...
  6. Mono 2.0正式发布了
  7. kafka的四种checkpoint(没有整理完)
  8. 假如有一款机器可以采集人的脑电波用于写作多好!
  9. java基本要点_java代码的基本要点
  10. amd cpu排行_最新AMD CPU排行出炉 E6版3000+夺魁
  11. Java数据结构与算法(26) - ch12堆(堆实现)
  12. java生成图片验证码
  13. dos命令窗口光标闪烁_史上最全的Vim命令(二)
  14. js中精度问题以及解决方案
  15. VS2012发布网站IIS配置
  16. win10加入域环境
  17. Linux Mint 19 Tara Beta 版发布,基于 Ubuntu 18.04
  18. linux运行360wifi,Linux(Ubuntu)下的无线网络卡上的小米和360wifi教程
  19. 鹰派学院创始人麦客:预测粤港澳大湾区将成为世界区块链高地
  20. go语言实现where in查询

热门文章

  1. 【iOS】AVPlayer 视频播放
  2. 10+编程语言实现云笔记
  3. 【C语言】C语言运算符
  4. 【单片机毕业设计】【mcuclub-200】温度控制温度检测温控恒温控制恒温箱
  5. 低频矢量网络分析仪(VNA)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  6. 小米手机更改默认应用
  7. 动态IP与静态ip的区别是什么
  8. 编码原理详解(五)---熵编码(CAVAL)
  9. OpenCV视频质量检测--清晰度检测
  10. oracle 求时间均值