约瑟夫环问题

思路

递推,f(n)与f(n-1)的关系,已经f(1)已知,O(n)的复杂度求出结果。
f(n) = (f(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;
        }
        int last = 0;
        for(int i = 2; i<=n;i++){
            last = (last + m )% i;
        }
        return last;
    }
}

你可能感兴趣的:(约瑟夫环问题)