首页 > 其他 > 详细

圆圈中最后剩下的数字

时间:2020-07-24 21:08:57      阅读:58      评论:0      收藏:0      [点我收藏+]

技术分享图片

技术分享图片

class Solution {
    public int lastRemaining(int n, int m) {
        //模拟法超时
        int pos = 0;//长度为1时候安全的下标
        //反推的过程
        //从i-1个人到i人的安全序号的变化
        //正过程:
        //1、下标为j+1的成为数组头,j前面的人加在数组尾
        //2、删除下标为j的人
        //恢复
        //1、补充删除的元素
        //2、数组下标右移(会越界所以取模)
    
        for(int i=2;i<=n;i++)
        pos = (pos+m)%i;
        return pos;
    }
}

圆圈中最后剩下的数字

原文:https://www.cnblogs.com/cstdio1/p/13373634.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!