zoukankan      html  css  js  c++  java
  • 【leetcode】39. 组合总和

    int cmp(const void* a,const void* b){
        return *(int*)a-*(int*)b;
    }
    void recursion(int* candidates,int len,int** arr, int* temp, int pst, int target, int res,int* returnSize,int* returnColumnSizes,int start){    
        for(int i=start; i<len && res<target; i++){
            temp[pst]=candidates[i];
            if(res+candidates[i] >= target){
                if(res+candidates[i]==target){
                    arr[(*returnSize)]=(int*)calloc(pst+1,sizeof(int));
                    memcpy(arr[(*returnSize)],temp,++pst*sizeof(int));
                    returnColumnSizes[(*returnSize)]=pst;
                    (*returnSize)++;
                }
                break;        
            }            
            recursion(candidates,len,arr,temp,pst+1,target,res+candidates[i],returnSize,returnColumnSizes, i);
            temp[pst]=0;
        }
    }
    
    int** combinationSum(int* candidates, int candidatesSize, int target, int* returnSize, int** returnColumnSizes){
        int** arr=(int**)calloc(1000,sizeof(int*));
        *returnColumnSizes=(int*)calloc(1000,sizeof(int));
        *returnSize=0;
        int temp[1000]={0};
        qsort(candidates,candidatesSize,sizeof(int),cmp);
        recursion(candidates,candidatesSize,arr,temp,0,target,0,returnSize,*returnColumnSizes,0);
        return arr;
    }
  • 相关阅读:
    poj2388-Who's in the Middle(排序)
    poj1543-Perfect Cubes(暴力)
    poj1664-放苹果(递归)
    快速幂
    poj2389-Bull Math(大整数乘法)
    HDU2608-0 or 1(数论+找规律)
    poj1131-Octal Fractions(进制转换)
    [noip2011 d1t2]选择客栈
    [周记]8.7~8.16
    [noip2012d1t2] 国王游戏
  • 原文地址:https://www.cnblogs.com/ganxiang/p/14107191.html
Copyright © 2011-2022 走看看