题目

求和为target的数组元素组合数,含重复。

例:

输入

arr = { 1, 2, 3, 3, 4 } ,target = 6

输出 4

题解

dp[i][j]代表到数组第i-1个元素,目标和为j的组合数。

代码

package DP;

public class TargetSumCnt {
public static void main(String args[]) {
int[] arr = { 1, 2, 3, 3, 4 };
int target = 6;
int ans = targetSumCnt(arr, target);
System.out.print(ans);
} private static int targetSumCnt(int[] arr, int target) {
int len = arr.length;
int[][] dp = new int[len + 1][target + 1];// 到第i个元素(从1计),和为target的组合个数
dp[0][0] = 1;
for (int i = 1; i <= len; ++i) {
for (int j = 0; j <= target; ++j) {
if (arr[i - 1] > j) {
dp[i][j] = dp[i - 1][j];
} else {
dp[i][j] = dp[i - 1][j] + dp[i - 1][j - arr[i - 1]];
}
}
}
return dp[len][target];
}
}

最新文章

  1. yarn关于app max attempt深度解析,针对长服务appmaster平滑重启
  2. java注释规范
  3. iOS - JSON 数据解析
  4. Scrum 项目——1
  5. nodeschool.io 5
  6. MAC自动备份数据到服务器
  7. Hello_IOS ios开发transform属性
  8. 在VS中安装EF和项目引用EF
  9. Linux svn一次增加多个文件并批量上传
  10. When Colon Scripting is comming(JavaScript语法扩充)
  11. python中的map,filter,zip函数
  12. pyhton字符编码问题--decode和encode方法
  13. axure8.0注册码
  14. #使用parser获取图片信息,输出Python官网发布的会议时间、名称和地点。
  15. 歌曲的BPM (Beat Per Minute)--每分钟节拍数
  16. CentOS7.5 GlusterFS 分布式文件系统集群环境搭建
  17. 【php增删改查实例】第十六节 - 用户新增
  18. Javaweb学习笔记——(八)——————常见系统体系结构,Tomcat,以及web的内部外部应用,http协议概述
  19. [daily] 主机间目录共享
  20. 《Python》hashlib模块、configparser模块、logging模块

热门文章

  1. Mybatis-06-Lombok
  2. 【Flutter 实战】一文学会20多个动画组件
  3. graphics.h源代码下载
  4. DataGrid添加进度条列
  5. 算法-搜索(4)ISAM算法
  6. Vector-based navigation using grid-like representations in artificial agents
  7. HTTP基本原理-Network各列标签的含义
  8. 区块链入门到实战(17)之以太坊(Ethereum) – 是什么
  9. 解决SpringBoot jar包中的文件读取问题
  10. IDEA下Maven项目搭建踩坑记----2.项目编译之后 在service层运行时找不到 com.dao.CarDao