inlcude_cx 2015-09-11 06:02 采纳率: 50%
浏览 2425
已结题

leetcode C语言 int**是怎么用的?

在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;  
            }  
        }  
    }  
    

    };

    评论

报告相同问题?