问题描述
- leetcode C语言 int**是怎么用的? 5C
- 在Combination Sum这道题中用到了int** columnSizes参数,我认为他是应该申请了内存的,可是当我调用columnSizes[0] = (int*)malloc(sizeof(int));的时候没问题,但是当我调用columnSizes[1] = (int*)malloc(sizeof(int));就会出现runtime error的问题,这是为什么呢?
解决方案
这道题是递归问题
代码:
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())0target);
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; } } }
};
解决方案二:
int**,指针的指针
解决方案三:
int** columnSizes = (int **)malloc(n*sizeof(int*)); columnSizes[0] = (int*)malloc(sizeof(int)); columnSizes[1] = (int*)malloc(sizeof(int));
解决方案四:
C语言中int型值的问题
时间: 2024-09-19 09:24:29