常见算法技巧
1、给定一个正数int型数组arr,和一个正数目标值target,随意从数组中取出任意个数字(不能重复取)求和,请问有多少种取法可以使总和刚好等于target
动态规划,空间压缩:
class Solution{
public void solve(int[] arr, int target) {
int[] dp = new int[target + 1];
dp[0] = 1;
for (int n: arr) {
for (int i = target; i >= n; i--) {
dp[i] = dp[i - n];
}
}
return dp[target];
}
}