Java蓝桥杯试题集——算法训练ALGO-116——最大的算式

博客讲述了使用Java解决蓝桥杯算法训练题ALGO-116的过程,重点在于动态规划的应用。作者分享了自己的解题思路,通过建立特定数组并循环计算,找到含有多个乘号的最大算式的值。
摘要由CSDN通过智能技术生成

题目要求

解题思路 

动态规划,今天才弄明白QAQ,借鉴了这位大佬的博客,曹磊的博客 写的很好!但是我觉得我的循环方式更容易理解嘿嘿嘿~

首先建立如下图的数组,行数代表前几位数,列数代表有几个乘号。将第0列赋值为前i个数的和。(没有*号,全是+号,比如第4行就是前4个数的和)

然后从第1列开始循环,*至少要在第二个数字之前出现,所以index=2。第一列应该是所有有1个*的最大值。求的方法也很简单:

dp[2][1]就是1*2,这个2就是dp[2][0] - dp[1][0]得来的。

dp[3][1]的求解循环了2遍,当 1*(2+3),和当(1+2)*3。选取结果最大的那个。

当有两个*时:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值