. Secuencia Wobble [Dp] Leetcode.376

Aquí Insertar imagen Descripción
Unidos define: dp[i]representantes designados como ila oscilación máxima de la final de la secuencia
, así como 0 lo positivo y negativo implicado aquí
por lo que el uso de up[i]la memoria es, con mucho, el más largo con la primera iuno hasta el final de la longitud de la secuencia de elementos de oscilación.
Del mismo modo, el down[i]registro es, de lejos, la más larga en el primer iextremo longitudinal de la gota ésimo elemento de la secuencia de oscilación.
Cada vez que nos encontramos con el primer ielemento de una secuencia de cola oscilante tiempo de subida de cambios up[i]. Ahora consideramos la forma de actualizar up[i], debemos tener en cuenta la totalidad de la parte delantera de la oscilación en secuencia descendente, que se va a encontrar down[j], se reúnen j < iy nums[i]>nums[j]. Del mismo modo, down[i]se actualizará.

/**
 * dp[i] 的意义是以下标i结尾的最长摆动序列
 */
class Solution {
    public int wiggleMaxLength(int[] nums) {
        if (nums.length <= 1) return nums.length;
        int n = nums.length;
        int[] up = new int[n];
        int[] down = new int[n];
        for (int i = 1; i < n; i++) {
            for (int j = i - 1; j >= 0; j--) {
                if(nums[i] - nums[j] > 0){
                    up[i] = Math.max(up[i],down[j] + 1);
                }else if (nums[i] < nums[j])
                    down[i] = Math.max(down[i],up[j] + 1);
            }
        }
        return 1 + Math.max(down[nums.length - 1], up[nums.length - 1]);
    }
    public static void main(String[] args) {
        int[] nums = {1,2,3,4,5,6,7,8,9};
        System.out.println(new Solution().wiggleMaxLength(nums));//2
    }
}

Supongo que te gusta

Origin www.cnblogs.com/HoweZhan/p/12547570.html
Recomendado
Clasificación