乐趣区

关于java:14-I-剪绳子dp贪心找规律

14- I. 剪绳子

动静布局:算法 - 动静布局 Dynamic Programming– 从菜鸟到老鸟
求解的形式有两种:①自顶向下的备忘录法 ②自底向上。
一备忘录法也须要递归,因而个别用自底向上的办法,

思路一:动静布局,自底向上。

总体思路就是:从 3 的最大后果,计算到 n 的最大后果。
不同宰割形式用递归实现
i 示意以后计算的绳子长度,j 示意宰割的长度,i- j 示意剩下的长度,每计算出一个后果都须要跟 以后 i 对应的最大后果 宰割一次的后果 剩下长度的最优后果 进行比照。即:

dp[i]、j*(i-j)、j*dp[i-j]

操作:

  • 留神:

    • 须要计算到 n,因而数组到 n +1
    • j 从 2 开始,因为割去 1 是有效的。
    • 也可从 4 开始递归,然而运行工夫减少点点

    思路二:贪婪(找法则)


    单看 7,8,9

  • 3×4 除以 3 商:2 余:1 :3^(2-1)x4
  • 3x3x2 除以 3 商:2 余:2 :3^2×2
  • 3x3x3 除以 3 商:3 余:0 :3^3

    操作:

退出移动版