我不知道為什么但是當遞回嘗試添加值然后在函式回傳洗掉所有元素后回傳它時,我不明白有什么問題。
static int SumNum(string target, string m[], map<string, int> memo = {}){
if (memo.find(target) != memo.end()) {
cout << memo.find(target)->second<<"\n";
return memo.find(target)->second;
}
if (target == "") return 1;
int totalCount = 0;
for(auto i = 0;i < 10; i )
{
if (target.find(m[i]) == 0){
int numOfWays = SumNum(target.substr(m[i].length()),m,memo);
totalCount = numOfWays;
}
}
memo.emplace(target, totalCount);
return totalCount;
}
int main(){
string ar[10] = {"e","ee","eee","eeee","eeeee","eeeeee","f","fdc","d","c"};
string target = "eeeeeeeeefdc";
auto answer = SumNum(target,ar);
cout << answer;
}
uj5u.com熱心網友回復:
我認為@Max 的意思是:
static int SumNum(std::string target, std::string m[], map<string, int>& memo = {} /* pass by reference */){
if (memo.find(target) != memo.end()) {
std::cout << memo.find(target)->second<<"\n";
return memo.find(target)->second;
}
if (target == "") return 1;
int totalCount = 0;
for(auto i = 0;i < 10; i )
{
if (target.find(m[i]) == 0){
int numOfWays = SumNum(target.substr(m[i].length()),m,memo);
totalCount = numOfWays;
}
}
memo.emplace(target, totalCount);
return totalCount;
}
int main(){
std::string ar[10] = {"e","ee","eee","eeee","eeeee","eeeeee","f","fdc","d","c"};
std::string target = "eeeeeeeeefdc";
auto answer = SumNum(target,ar);
std::cout << answer;
}
uj5u.com熱心網友回復:
謝謝@Max 我確實像你說的
static int SumNum(string target, string m[], map<string, int> *memo = new map<string, int>()) {
if (memo->find(target) != memo->end()) {
cout << memo->find(target)->second<<"\n";
return memo->find(target)->second;
}
if (target == "") return 1;
int totalCount = 0;
for(auto i = 0;i < 10; i )
{
if (target.find(m[i]) == 0){
int numOfWays = SumNum(target.substr(m[i].length()),m,memo);
totalCount = numOfWays;
}
}
memo->emplace(target, totalCount);
return totalCount;
}
int main(){
string ar[10] = {"e","ee","eee","eeee","eeeee","eeeeee","f","fdc","d","c"};
string target = "eeeeeeeeeeeeefdc";
auto answer = SumNum(target,ar);
cout << answer;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/337469.html
下一篇:從動態嵌套陣列生成物件的平面陣列
