403. Rana cruzando el río (programación dinámica)
Esta pregunta utiliza programación dinámica. Lo más importante en la programación dinámica es la ecuación dp. Veamos cómo desmontarla.
Hay una matriz de programación dinámica dp[i][. k], i es el número actual de la piedra donde se encuentra, k es la distancia del último salto. De la teoría anterior, se puede ver que cuando hay n piedras, si dp [n-1][. k] es verdadero, se devolverá verdadero
Se determina la dirección general, comenzando de pequeño a grande, para la i-ésima piedra, primero enumeramos todos los j (es decir, el último número de piedra), entonces la "distancia del último salto" k es piedras [i] - piedras [j], si en la j-ésima piedra, la "distancia del último salto" de la rana puede ser una de k-1, k, k 1. Entonces nuestro plan en este momento es un plan legal, por lo que solo necesitamos verificar dp[j] Siempre que uno de los tres [k-1], dp[j][k], dp[j][k 1] sea verdadero, es decir, dp[i][k] = dp[j][k - 1 ] || dp[j][k] ||