- 整数替换 11.19
class Solution {
map<long,long> record;
public:
int integerReplacement(int n) {
return dfs(n);
}
int dfs(long n){
if(n==1){
return 0;
}
if(record.find(n)!=record.end())
{
return record[n];
}
long ans = n%2==0?dfs(n/2)+1:min(dfs(n+1),dfs(n-1))+1;
record[n]=ans;
return ans;
}
};