zoukankan      html  css  js  c++  java
  • LeetCode 377 组合总数IV

    LeetCode 377 组合总数IV

    题目描述:
    给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。

    动态规划

    • 动态规划解法的设计(状态定义、状态转移)可以从递归解法开始
    • 在递归解法中,每一次从数组中任选一个数nums[i],则子问题是同样的nums下找到的和为taget-nums[i]的组合数量
    • 因此将状态定义为: dp[target] 表示nums中找到的和为target的组合数目
    • 状态转移为: dp[target] = 求和(0=<i<=nums.length) dp[target-nums[i]],其中nums[i]满足小于等于target

    执行用时:1 ms, 在所有 Java 提交中击败了99.68%的用户
    内存消耗:37.1 MB, 在所有 Java 提交中击败了28.93%的用户

    class Solution {
        public int combinationSum4(int[] nums, int target) {
            //DP[S]表示nums数组构成的和为S的组合个数
            //DP[S] = 求和 DP[S-nums[i]], num[i] <= S, 0=<i<nums.length
            int[] dp = new int[target+1];
            dp[0] = 1;
    
            /*递推*/
            for(int sum=1; sum<=target; sum++) {
                for(int curr=0; curr<nums.length; curr++) {
                    if(nums[curr]<=sum) {
                        dp[sum] += dp[sum-nums[curr]];
                    }
                }
            }
    
            return dp[target];
    
        }
    }
    
  • 相关阅读:
    UGUI血条跟随
    unity组件路径自动生成
    双摄像机使用
    Unity 属性雷达图
    unity UGUI UI跟随
    Unity中实现人物平滑转身
    游戏摇杆
    IIS下载无后缀文件的设置
    convert svn repo to git
    Discovery and auto register
  • 原文地址:https://www.cnblogs.com/CodeSPA/p/13575637.html
Copyright © 2011-2022 走看看