《剑指Offer》62. 圆圈中最后剩下的数

题目链接

牛客网

题目描述

让小朋友们围成一个大圈。然后,随机指定一个数 m,让编号为 0 的小朋友开始报数。每次喊到 m-1 的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续 0…m-1 报数 … 这样下去 … 直到剩下最后一个小朋友,可以不用表演。
返回最后小朋友的编号

解题思路

约瑟夫环,圆圈长度为 n 的解可以看成长度为 n-1 的解再加上报数的长度 m。因为是圆圈,所以最后需要对 n 取余。

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;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
02-03 10:14
求各位大佬帮忙改改简历提提建议
黑皮白袜臭脚体育生:简历条例统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写 可以看我帖子简历话术写法
点赞 评论 收藏
分享
2024-12-12 15:07
已编辑
门头沟学院 Java
秋招end未来可期:实习内容太多了,抓不住重点,关键还是用了什么技术解决了什么问题,得到了什么样的效果,另外专业技能有点少,可以网上去找一些别人的简历来参考参考。整体内容够了,估计就是一些内容调整了。
点赞 评论 收藏
分享
2024-12-20 18:56
已编辑
武汉轻工大学 后端
牛牛大啊:er图都冒出来了😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务