preguntas cara LeetCode masajista 17.16

Problemas como un problema de programación dinámica, así que al final lo más importante es escribir las ecuaciones dinámicas de transferencia

En primer lugar, se supone que el array [2,7,9,3,1], cuando I y reserva masajista III (es decir, un número 9),

Así que necesito (9 + 2) comparar y (7), es posible obtener la ecuación

Math.max(dp[i-1],dp[i-2]+nums[i])    //nums[i]即为当前的按摩师

Código es el siguiente

public int massage(int[] nums) {
         int n = nums.length;
         if(n == 0)return 0;
         if(n == 1)return nums[0];

        int[] dp = new int[n];

        dp[0] = nums[0];
        dp[1] = Math.max(nums[0],nums[1]);
        for(int i=2; i<n; i++){
            dp[i] = Math.max(dp[i-1],dp[i-2]+nums[i]);
        }

        return dp[n-1];
    }

Este problema y forzar la situación del mismo robo hebilla de serie

Si está interesado puede ir desinfectante para manos

Esta categoría sólo se usa como un registro personal, Gángster aerosol ligero.

Supongo que te gusta

Origin www.cnblogs.com/xiaofff/p/12560407.html
Recomendado
Clasificación