• 377. Combination Sum IV


    Given an integer array with all positive numbers and no duplicates, find the number of possible combinations that add up to a positive integer target.

    Example:

    nums = [1, 2, 3]
    target = 4
    
    The possible combination ways are:
    (1, 1, 1, 1)
    (1, 1, 2)
    (1, 2, 1)
    (1, 3)
    (2, 1, 1)
    (2, 2)
    (3, 1)
    
    Note that different sequences are counted as different combinations.
    
    Therefore the output is 7.
    

    统计个数,如果还是用上3题的方法,超时了。

     1 class Solution {
     2 public:
     3     int finalres ;
     4     int combinationSum4(vector<int>& candidates, int target) {
     5         help(0,candidates,target);
     6         return finalres;
     7         
     8     }
     9     void help(int cursum,vector<int>& candidates,int target){
    10         if(cursum==target)
    11              finalres ++;
    12         if(cursum>target)
    13             return;
    14         for(int i = 0;i<candidates.size();i++){
    15             help(cursum,candidates,target-candidates[i]);
    16         }
    17     }
    18 };

    只是统计个数的话,其实是不用把每个组合都排出来,而且这个题并不是真正意义的排列问题

    因为每个数字可以用无限次。

     c++ leetcode有bug 所以用java

     1 class Solution {
     2    public int combinationSum4(int[] nums, int target) {
     3     int[] dp = new int[target + 1];
     4     dp[0] = 1;
     5     for (int i = 1; i <=target; i++) 
     6         for (int j = 0; j < nums.length; j++) 
     7             if (i - nums[j] >= 0) 
     8                 dp[i] += dp[i - nums[j]];   
     9     return dp[target];
    10     }
    11 }
  • 相关阅读:
    js-----面向对象=====>工厂模式/构造函数/原型模式
    MarkDown语法
    Vue 基础篇
    CSS 预处理语言之 less 篇
    Git常用命令
    与 JSON 相关的一些操作 (项目中用到一部分,后续逐渐完善)
    [转] -- html5手机网站自适应需要加的meta标签
    [转] -- 最全前端资源汇集
    json和jsonp的区别,ajax和jsonp的区别
    对象
  • 原文地址:https://www.cnblogs.com/zle1992/p/10517167.html
Copyright © 2020-2023  润新知