孩子们的游戏(圆圈中最后剩下的数)_JAVA_中等

孩子们的游戏(圆圈中最后剩下的数)

http://www.nowcoder.com/questionTerminal/f78a359491e64a50bce2d89cff857eb6

  • 设有n个同学,数为m,则最后一位排除的为f(n,m),第一位排除的为m%n
  • f(n,m)第一次处理之后,第一位排除的同学为m%n,剩余n-1位同学,而n-1位同学若是从0开始,则最后一位排除的就是f(n-1,m),而此时却是从m%n开始,则最后一位排除的就是(f(n-1,m) + m%n) % n
  • 则f(n,m) = (f(n-1,m) + m) % n
public class Solution {
    public int LastRemaining_Solution(int n, int m) {
        if(n < 1) {
            return -1;
        }
        int cache = 0;
        for(int i = 2; i <= n; i++) {
            cache = (cache + m ) % i;
        }
        return cache;
    }
}
全部评论

相关推荐

牛客98820962...:个人意见,我觉得实习和项目经历要一致,达美乐感觉没必要写
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
2025-12-18 11:21
优秀的大熊猫在okr...:叫你朋友入职保安,你再去送外卖,一个从商,一个从政,你们两联手无敌了,睁开你的眼睛看看,现在是谁说了算(校长在背后瑟瑟发抖)
选实习,你更看重哪方面?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务