312. 戳气球 动态规划

题目描述了戳气球的动态规划问题,难度为困难。在数组两端添加虚拟气球,并从右向左进行动态规划计算,以找到最大乘积。解题过程强调了状态转移方程的理解和应用。
摘要由CSDN通过智能技术生成

312. 戳气球

难度:困难
2020/7/19每日一题打卡
题目描述
在这里插入图片描述

解题思路
今天是抄答案而且还抄的迷迷糊糊的一天
知道要这样做,但是仔细去想为什么是这样的,又说不出个所以然
在这里插入图片描述
首先在数组左右两端添加虚拟气球节点,是不能被戳破的,这样能方便处理边界,而且保证总是有三个气球相乘。
然后注意动态规划的顺序,要从区间右边开始,逆序,因为前面的要用到后面的子状态
然后k表示最后一个戳破的气球,这样会好理解很多,是最后一个戳破的,左边和右边的结果都有了,直接dp[i][j] = Math.max(dp[i][j], dp[i][k]+dp[k][j]+nums1[i]*nums1[k]*nums1[j]);

 /*
		     * 312. 戳气球
		     * 2020/7/19每日一题  难度:困难  动态规划
		     * dp[i][j] : 先戳破[i, k - 1]和[k + 1, j]的气球,最后戳破第k个气球获得转移方程。
		     */
		    public int maxCoins(int[] nums) {
   
		    	int n = nums.length;
		    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值