[算法]类似n sum个数的问题(DP)
2024-08-30 04:51:50
题目
求和为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];
}
}
最新文章
- yarn关于app max attempt深度解析,针对长服务appmaster平滑重启
- java注释规范
- iOS - JSON 数据解析
- Scrum 项目——1
- nodeschool.io 5
- MAC自动备份数据到服务器
- Hello_IOS ios开发transform属性
- 在VS中安装EF和项目引用EF
- Linux svn一次增加多个文件并批量上传
- When Colon Scripting is comming(JavaScript语法扩充)
- python中的map,filter,zip函数
- pyhton字符编码问题--decode和encode方法
- axure8.0注册码
- #使用parser获取图片信息,输出Python官网发布的会议时间、名称和地点。
- 歌曲的BPM (Beat Per Minute)--每分钟节拍数
- CentOS7.5 GlusterFS 分布式文件系统集群环境搭建
- 【php增删改查实例】第十六节 - 用户新增
- Javaweb学习笔记——(八)——————常见系统体系结构,Tomcat,以及web的内部外部应用,http协议概述
- [daily] 主机间目录共享
- 《Python》hashlib模块、configparser模块、logging模块
热门文章
- Mybatis-06-Lombok
- 【Flutter 实战】一文学会20多个动画组件
- graphics.h源代码下载
- DataGrid添加进度条列
- 算法-搜索(4)ISAM算法
- Vector-based navigation using grid-like representations in artificial agents
- HTTP基本原理-Network各列标签的含义
- 区块链入门到实战(17)之以太坊(Ethereum) – 是什么
- 解决SpringBoot jar包中的文件读取问题
- IDEA下Maven项目搭建踩坑记----2.项目编译之后 在service层运行时找不到 com.dao.CarDao