经典动态规划---(马戏团)叠罗汉

OK,首先看题目描述:

再看输入和输出描述:

 那通过审题我们可以得出以下结论:

①每个人肩上的人满足以下几个条件

a.身高和体重都比自己低

b.身高相等 体重比自己低 

满足以上条件之一就可以

!!!!注意,体重相等,身高比自己低的人是不满足条件的!

②求的是最大的层数

那我的思路就是先把所有人都按身高从低到高进行排序,如果身高相等那么就按照体重从低到高排序。

之后就是上升子序列的求法了,我们设每个人的值为dp[i],设一个max值记录最大层数

①每个人的初始值dp[i]都为1(我自己一个人叠)

②和之前的每一个人dp[j](j<i)进行比较,符合条件就和比较 dp[i] 和 dp[j]+1 ,dp[i]取两者较大的值

③每个人和自己前面的人比较后,max 取 dp[i] 和 max 的较大值

④遍历完成后,max就是最高的层数了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值