zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    Jquery日历插件e-calendar升级版
    jquery双击事件(dblclick)时,不触发单击事件(click)
    js实现的点击div区域外隐藏div区域
    IE浏览器new Date()带参返回NaN解决方法
    RequireJs中使用layer的问题
    AngularJs规范
    js调用Angular的方法
    游标cursor
    bigint数据类型
    ANSI_NULLS和QUOTED_IDENTIFIER
  • 原文地址:https://www.cnblogs.com/zle1992/p/10517167.html
Copyright © 2011-2022 走看看