在Combination Sum这道题中用到了int** columnSizes参数,我认为他是应该申请了内存的,可是当我调用columnSizes[0] = (int*)malloc(sizeof(int));的时候没问题,但是当我调用columnSizes[1] = (int*)malloc(sizeof(int));就会出现runtime error的问题,这是为什么呢?
3条回答 默认 最新
- 王纯配 2015-09-11 07:08关注
这道题是递归问题
代码:
class Solution {
public:
vector > result;
vector candidates;
vector > combinationSum(vector &candidates, int target) {
this->candidates = candidates;
sort(this->candidates.begin(),this->candidates.end());
getCombination(*(new vector()),0,target);
return result;
}void getCombination(vector<int> v, int sum, int target) { int last=INT_MIN; if(v.size()>0) { last = v[v.size()-1]; } int i = 0; for(;i<candidates.size();i++) { if(candidates[i]>=last) { break; } } for(int j=i;j<candidates.size();j++) { if(sum + candidates[j]==target) { v.push_back(candidates[j]); result.push_back(v); v.pop_back(); } else if(sum + candidates[j]<target) { v.push_back(candidates[j]); getCombination(v, sum+candidates[j],target); v.pop_back(); } else { return; } } }
};
解决 无用评论 打赏 举报