class solution
aresult.push_back(ares);
return aresult;
} else if (candidates.size() == 1 && target%candidates[0] != 0 || candidates.size() == 0 || target == 0)
else
preresult = combinationsum(candidates, target - n * aim);
for (int i = 0; i < preresult.size()|| (target - n * aim)==0; i++)
n++;
res.clear();
}return result;
} }};
不能完全正確執行,知道為什麼,但是還沒改,思考怎麼改。。。之所以不正確是因為改變了向量的長度,即使回退長度也不會恢復。
以下是修改之後的程式,可以成功執行,但是總感覺不夠精簡
class solution
vector> com(int start, vector&candidates, int target)
preresult.push_back(b);
return preresult;
} if (start == candidates.size() - 1 && target%candidates[start] != 0||target==0)
else
result=com(start + 1, candidates, target - n * aim);
for (int i = 0; i < result.size(); i++)
preresult.push_back(res);
res.clear();
for (int i = 0; i < n; i++)
}if (target - n * aim == 0)
preresult.push_back(res);
n++;
res.clear();
}return preresult;
} }};
int main()
solution bb;
vector> s = bb.combinationsum(arr,target);
for (int i = 0; i < s.size(); i++)
void com(vector&candidates, int index, int target, vectorres, vector> &result)
else if (target<0) return ;
else
} }};
class solution
void gener(vector&v, string s, int l, int r)
if (r > 0 && l這個第一次沒寫對,參考了一篇部落格。
39 組合總和
給定乙個無重複元素的陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的數字可以無限制重複被選取。說明 示例 1 輸入 candidates 2,3,6,7 target 7,所求解集為 7 2,2...
39 組合總和
給定乙個無重複元素的陣列candidates和乙個目標數target,找出candidates中所有可以使數字和為target的組合。candidates中的數字可以無限制重複被選取。說明 示例 1 輸入 candidates 2,3,6,7 target 7,所求解集為 7 2,2,3 示例 2 ...
39 組合總和
給定乙個無重複元素的陣列candidates和乙個目標數target,找出candidates中所有可以使數字和為target的組合。candidates中的數字可以無限制重複被選取。說明 輸入 candidates 2,3,6,7 target 7,所求解集為 7 2,2,3 輸入 candida...