圆圈中最后剩下的数
约瑟夫问题
进行数学公式的推导
public class Solution { public int LastRemaining_Solution(int n, int m) { if(n==0) return -1; if(n==1) return 0; return (LastRemaining_Solution(n-1,m) + m) % n; } }
也可以进行游戏过程的模拟
import java.util.*; public class Solution { public int LastRemaining_Solution(int n, int m) { if (m == 0 || n == 0) { return -1; } ArrayList<Integer> data = new ArrayList<Integer>(); for (int i = 0; i < n; i++) { data.add(i); } int index = 0; while (data.size() > 1) { index = (index + m - 1) % data.size(); data.remove(index); } return data.get(0); } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论