【算法学习】高级班五

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
优化(记忆化搜索):
在这里插入图片描述
在这里插入图片描述
可以发现,如果没有缓存,(6,6)和(7,6)都需要多次计算
2.
在这里插入图片描述
假设没有括号,设置一个int num和一个栈,遇到数字置num,遇到符号,把num和符号一起压栈,num清空。但当遇到栈顶是或\时,栈中弹出两个元素做乘除,然后再压栈。
如num=9且遇到+时,栈顶是 ∗ * ,则弹出64和 ∗ * ,求64
9=576,把576和下一个+一起压栈。最后栈中只剩+和-
在这里插入图片描述
如果有括号:
在这里插入图片描述
代码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • LinkedList是双端队列

在这里插入图片描述

  • 常规思路
    在这里插入图片描述
    不为0的地方,value只依赖于左上角的值(左上角+1)
  • 空间压缩
    初步:用一维数组进行压缩
    优化:一条斜线一条斜线的计算,遍历求斜线的最大值,记录最大值,只用一个int就可以了。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • if(col>0)这里的条件分支决定了斜线的起始点,由右下往左下移动,最后向左上移动(L型)

在这里插入图片描述
在这里插入图片描述
四种可能性求最大值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值