0
点赞
收藏
分享

微信扫一扫

leetcode:354. 俄罗斯套娃信封问题

小飞侠熙熙 2022-05-03 阅读 34

题目来源

  • leetcode

题目解析

在这里插入图片描述

题目解析

最长序列型动态规划

  • 可能出现一个信封A能放入信封B和信封C,但是信封B和信封C不能相互放入
  • 将所有信封按照长度一维进行排序: E 0 、 E 1 . . . . . E n − 1 E_0、E_1.....E_{n-1} E0E1.....En1,比如先按照长度,这样:
    • 如果信封 E i E_i Ei能够放入信封 E j E_j Ej里,就一定有 i < j i<j i<j
    • 如果一个信封 E j E_j Ej是最外层的信封,那么它里面的第一层信封 E i E_i Ei,一定满足 i < j i<j i<j
  • 最后一步:
    • 设最优策略中最后一个信封,即最外层的信封,是 E j E_j Ej
    • 那么,对于次外层信封:
      • 一定是某个 E i , i < j E_i,i<j Eii<j
      • 而且以 E i E_i Ei为最外层信封的嵌套层数也一定是最多的
  • 子问题:
    • 要求以 E j E_j Ej为最外层信封时最多的嵌套层数
    • 需要知道以 E i E_i Ei为最外层信封时最多的嵌套层数 i < j i < j i<j
  • 状态:f[i]表示以 E i E_i Ei为最外层信封时最多的嵌套层数

(2)转移方程

在这里插入图片描述
(3)初始条件和边界情况

  • 无初始条件(没有任何信封就是1)

(4)计算顺序

  • 从小到大

在这里插入图片描述

举报

相关推荐

俄罗斯套娃

0 条评论