約瑟夫環

題目:

0,1,…,n-1這n個數字排成一個圓圈,從數字0開始每次從這個圓圈裏刪除第m個數字。求出這個圓圈裏剩下的最後一個數字。

解題思路:

遞推公式:

f(n,m)={0[f(n1,m)+m]%nn=1n>1

java實現:

public class Solution {
    public int LastRemaining_Solution(int n, int m) {
        if(n < 1 || m < 1)
            return -1;
        int last = 0;
        for(int i = 2; i <= n; i ++){
            last = (last + m) % i;
        }
        return last;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章