Leetcode_1823_找出游戏的获胜者_约瑟夫环
以前看了很久都没会,今天看了突然会了,其实很简单,举个例子就行
我们定义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_找出游戏的获胜者_约瑟夫环相关推荐
- 每日一道leetcode(python)1823. 找出游戏的获胜者
每日一道leetcode(python)1823. 找出游戏的获胜者 2021-08-07 共有 n 名小伙伴一起做游戏.小伙伴们围成一圈,按 顺时针顺序 从 1 到 n 编号.确切地说,从第 i 名 ...
- 1823. 找出游戏的获胜者( 约瑟夫环问题 )
文章目录 Question Ideas 1.Answer( Java ) Code 2.Answer( Java ) Code 3.Answer( Java ) Code Question 1823. ...
- 约瑟夫环——递推公式详解(leetcode 1823. 找出游戏的获胜者)
约瑟夫环--递推公式详解(leetcode 1823. 找出游戏的获胜者) 约瑟夫环问题 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知 n 个人(以编号1,2,3-n分别表示)围坐在一张圆桌周围. ...
- LeetCode 1823. 找出游戏的获胜者
LeetCode 1823. 找出游戏的获胜者 文章目录 LeetCode 1823. 找出游戏的获胜者 题目描述 一.解题关键词 二.解题报告 1.思路分析 2.时间复杂度 3.代码示例 2.知识点 ...
- golang力扣leetcode 1823.找出游戏的获胜者
1823.找出游戏的获胜者 1823.找出游戏的获胜者 题解 代码 1823.找出游戏的获胜者 1823.找出游戏的获胜者 题解 题目:n个位围成一个环,每次删除第k个人,求最后一个人是谁 思路:约瑟 ...
- 力扣每日一题2022-05-04中等题:找出游戏的获胜者
找出游戏的获胜者 题目描述 思路 数学 C++实现 Java实现 Python实现 题目描述 找出游戏的获胜者 思路 数学 第一轮删掉第k个人,问题就变为n-1个人进行这个游戏.假设知道f(n-1, ...
- 0504|1823. 找出游戏的获胜者
0504|1823. 找出游戏的获胜者 这道题使用队列也可以. 遍历 quene 时,从队尾拿出一个成员,然后再从对头插入.如此循环. 这里使用的是链表: var findTheWinner = fu ...
- 约瑟夫环问题- leetcode 1823. 找出游戏的获胜者
1823. 找出游戏的获胜者 使用链表模拟 class Solution {// 模拟public int findTheWinner(int n, int k) { List<Integer& ...
- 找出游戏的获胜者(java)
问题描述:(约瑟夫环) 样例输入: 代码如下:使用链表模拟法 import java.util.Scanner; public class FindTheWinner {//找出游戏的获胜者//1 & ...
最新文章
- IJCAI 2019精选论文一览,从底层到应用都有了
- 请指出document load和document ready的区别?
- MapReduce开发总结
- poj3666(DP+离散化)
- c# combobox集合数据不显示_VBA与数据库解决方案:Recordset记录集合的动态查询,并显示结果...
- Mono 2.0正式发布了
- kafka的四种checkpoint(没有整理完)
- 假如有一款机器可以采集人的脑电波用于写作多好!
- java基本要点_java代码的基本要点
- amd cpu排行_最新AMD CPU排行出炉 E6版3000+夺魁
- Java数据结构与算法(26) - ch12堆(堆实现)
- java生成图片验证码
- dos命令窗口光标闪烁_史上最全的Vim命令(二)
- js中精度问题以及解决方案
- VS2012发布网站IIS配置
- win10加入域环境
- Linux Mint 19 Tara Beta 版发布,基于 Ubuntu 18.04
- linux运行360wifi,Linux(Ubuntu)下的无线网络卡上的小米和360wifi教程
- 鹰派学院创始人麦客:预测粤港澳大湾区将成为世界区块链高地
- go语言实现where in查询