杀戮尖塔游戏

Java 你正在玩策略卡牌杀戮尖塔游戏,轮到你出牌,手里N张攻击卡,每张都需要花金币cousti和获得伤害dmageri

最多花3金币能造成的最大伤害是多少?

java 复制代码
class Solution{
	public int calc(int[] cost, int[] dmager, N){
		int[][] db = new int[N + 1][4];
		
		for(int i = 1; i <= N; i++){
			for(int j = 0; j <= 3; j++){
			    if(cost[i-1] <= j){
                    dp[i][j] = Math.max(dp[i-1][j-cost[i-1]] + dmager[i-1], dp[i-1][j]);
                }
                else{
                    dp[i][j] = dp[i-1][j];
                }			
            }
		}
		return db[N][3];
	}
}

主要思路:

主要思路是使用动态规划,构建一个二维数组dp,dpij表示使用前i张卡牌,花费j金币能造成的最大伤害。对于每一张卡牌,我们可以选择使用或不使用,使用时需要判断当前金币是否足够,如果足够,就选择使用该卡牌,计算使用该卡牌后的伤害值;不足够时,就选择不使用该卡牌。最后返回dpN3,表示使用前N张卡牌,花费3金币能造成的最大伤害。

相关推荐
m沐沐1 小时前
【深度学习】YOLOv2目标检测算法——改进点、网络结构与聚类先验框解析
人工智能·pytorch·深度学习·算法·yolo·目标检测·transformer
不会就选b1 小时前
算法日常・每日刷题--<链表>3
数据结构·算法·链表
geovindu2 小时前
go: Iterative Algorithms
开发语言·后端·算法·golang·迭代算法
Zachery Pole4 小时前
CCF-CSP备战NO.7【队列】
算法
闪电悠米4 小时前
力扣hot100-48.旋转图像-转置翻转详解
算法·leetcode·职场和发展
满天星83035775 小时前
【算法】最长递增子序列(三种解法)
算法
啦啦啦啦啦zzzz5 小时前
算法:贪心算法
c++·算法·leetcode·贪心算法
清泓y7 小时前
RAG 技术
算法·ai
阿慧今天瘦了嘛7 小时前
计算机组成原理概述:从硬件到软件的桥梁
计算机网络·算法
网站优化(SEO)专家7 小时前
SEO核心算法拆解:网站排名快速提升的武林秘籍!
算法·搜索引擎·网站排名·核心算法