DP动态规划
DP动态规划笔记
第一题-力扣377
给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。
题目数据保证答案符合 32 位整数范围。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/combination-sum-iv
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:采用动态规划方法,计算 dp[target] 。
import java.util.*;
public class LeetCode377 {
public int combinationSum4(int[] nums, int target){
int dp[] = new int[target+1];
dp[0] = 1;
for(int i = 1; i <= target; i++){
for(int num:nums){
if(num <= i){
dp[i] += dp[i-num];
}
}
}
return dp[target];
}
public static void main(String[] args) {
LeetCode377 lc = new LeetCode377();
Scanner sc = new Scanner(System.in);
String inputString = sc.nextLine();
String stringArray[] = inputString.split(" ");
int num[] = new int[stringArray.length];
for (int i = 0; i < stringArray.length; i++) {
num[i] = Integer.parseInt(stringArray[i]);
}
int target = sc.nextInt();
int result = lc.combinationSum4(num,target);
System.out.println(result);
}
}

查看21道真题和解析