インタビューの質問62.サークルの最後に残った番号

インタビューの質問62.サークルの最後に残った番号

アイデア:f(n、m)=(f(n-1、m)+ m)%n。ジョセフ問題

ライティング1

class Solution {
public:
    int lastRemaining(int n, int m) {
        if(n==1) return 0;
        return (lastRemaining(n-1, m)+m)%n;//f(n,m) = (f(n-1,m)+m)%n
    }
};

2つを書く

class Solution {
public:
    int lastRemaining(int n, int m) {
        int res = 0;
        for(int i=2;i<=n;i++)
            res = (res+m)%i;
        return res;
    }
};

 

248の元の記事を公開 29のような 30,000以上を訪問

おすすめ

転載: blog.csdn.net/weixin_38603360/article/details/105192142