Dada una secuencia de enteros, devuelve la longitud de la subsecuencia más larga que es una secuencia de meneo. Una subsecuencia se obtiene eliminando algunos elementos (eventualmente, también cero) de la secuencia original, dejando los elementos restantes en su orden original.
Solución Java
El problema se convierte en encontrar el punto de inflexión. Cuando nums[i]
public int wiggleMaxLength(int[] nums) { if(nums == null || nums.length==0) return 0; if(nums.length<2){ return nums.length; } int count=1; for(int i=1, j=0; i<nums.length; j=i, i++){ if(nums[j]<nums[i]){ count++; while(i<nums.length-1 && nums[i]<=nums[i+1]){ i++; } }else if(nums[j]>nums[i]){ count++; while(i<nums.length-1 && nums[i]>=nums[i+1]){ i++; } } } return count; } |