圆圈中最后剩下的数字

题目 圆圈中最后剩下的数字

image-1f9b0368

思路分析

约瑟夫问题 在双链表里使用模拟解决过 圆圈中最后剩下的数字

其实还可以用递归递推来写

image-5e100876

代码实现

 class Solution {

public:

    int lastRemaining(int n, int m){

        if(n==1)

            return 0;

        return (lastRemaining(n-1,m)+m)%n;

    }

};
class Solution {

public:

    int lastRemaining(int n, int m){

        int last = 0;

        for (int i = 2; i <= n; i++) {

            last = (last + m) % i;

        }

        return last;

    }

};

同类题型

视频讲解


⬅️ 吃糖果 🏠 00-刷题理模型 ➡️ 斐波那契字符串