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