Pregunta de la entrevista 62. El último número que queda en el círculo

Pregunta de la entrevista 62. El último número que queda en el círculo

Idea: f (n, m) = (f (n-1, m) + m)% n. Problema de Joseph

Escritura 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
    }
};

Escribiendo dos

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 artículos originales publicados · Me gusta 29 · Visitas 30,000+

Supongo que te gusta

Origin blog.csdn.net/weixin_38603360/article/details/105192142
Recomendado
Clasificación