• 给定一个序列
  • 动态规划方程f[i]中的下标i表示前i个元素a[0] a[1] ... a[i-1]的某种性质
    • 坐标型的f[i]表示第三章:序列型动态规划 - 图2为结尾的某种性质
  • 初始化中,f[0]表示空序列的性质
    • 坐标型动态规划的初始条件f[0]就是指以第三章:序列型动态规划 - 图3为结尾的子序列的性质

2.1

2.2

2.3

2.4 题目解析

843 · 数字翻转

解析

题意:

  • 给定一个长度为N的01串
  • 要求翻转其中最少的01,使得结果中没有"01"这样的子串

  • 例子:

  • 输入:[1 0 1 0 1 0]
  • 输出:2 (变成[1 1 1 1 1 0]

确定状态:

  • 最后一步:最优策略中,最后一位数是否翻转
  • 但是需要知道前一位数已经变成0还是1
  • 并且前N-1位数最少翻转多少次,满足要求(无01子串)
  • 不知道的信息加入状态里
  • 状态
  • f[i][0]表示A[i-1]变成0的情况下,前i位最少翻转多少个能满足要求
  • f[i][1]表示A[i-1]变成1的情况下,前i位最少翻转多少个能满足要求

初始条件和边界情况:


题目

:::info

:::

👋

样例

Input:

Output: :::success

::: Explain: :::warning

:::


Input:

Output: :::success

::: Explain: :::warning

:::

代码

515 · 房屋染色

解析

题意:


确定状态:



子问题:


转移方程:


初始条件和边界情况:


计算顺序


题目

:::info

:::

👋

样例

Input:

Output: :::success

::: Explain: :::warning

:::


Input:

Output: :::success

::: Explain: :::warning

:::

代码

小结


image.png

image.png

电话面试