题解 | #孩子们的游戏(圆圈中最后剩下的数)#
孩子们的游戏(圆圈中最后剩下的数)
http://www.nowcoder.com/practice/f78a359491e64a50bce2d89cff857eb6
- 画成圈进行做题。
- 一般就会涉及加一个固定的长度。以及对一个数取余数。
- 其余看注释即可。
 
class Solution {
public:
    int LastRemaining_Solution(int n, int m) {
        if(n<=0) return -1;
        int ans = 0;//第一个孩子是从0开始的,(已经删除过一个元素)
        for(int i =2;i<=n;i++){
            ans = (ans+m)%i;//第二个孩子会用到上一个孩子的结果,并且指的是上个孩子数的时候以及删掉了一个孩子,然后+m
                            // 下一个孩子数的位置在哪。数学规律中的假设
        }
        return ans;
    }
};剑指Offer 文章被收录于专栏
 剑指offer的解析结合


 投递字节跳动等公司10个岗位
投递字节跳动等公司10个岗位