约瑟夫环

来源:互联网 发布:淘宝旺旺客服头像 编辑:程序博客网 时间:2024/06/05 08:59

题目:

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;    }}
原创粉丝点击