Estoy tratando de resolver la pregunta Máxima de la ventana deslizante en leetcode. Me está dando Límite de tiempo excedido, así que supongo que mi código no está bien optimizado y necesita soluciones más eficientes. Pero traté de optimizar mi solución pero aún obtuve el límite de tiempo excedido en leetcode.
Ques1: Máximo de ventana deslizante
Se le da una matriz de números enteros, hay una ventana deslizante de tamaño k que se mueve desde el extremo izquierdo de la matriz hacia la derecha. Solo puede ver los números k en la ventana. Cada vez que la ventana deslizante se mueve hacia la derecha una posición.
Devuelve la ventana deslizante máxima.
Ejemplo:
Input: nums = [1,3,-1,-3,5,3,6,7], k = 3 Output: [3,3,5,5,6,7] Explanation: Window position Max --------------- ----- [1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 6 7 3 1 3 [-1 -3 5] 3 6 7 5 1 3 -1 [-3 5 3] 6 7 5 1 3 -1 -3 [5 3 6] 7 6 1 3 -1 -3 5 [3 6 7] 7Restricciones:
- 1 <= nums.length <= 10^5 - 10^4 <= nums[i] <= 10^4 - 1 <= k <= nums.length
enlace de preguntas
Mi código: Casos de prueba 37 / 51
const nums = [1,3,-1,-3,5,3,6,7], k = 3 let arr = []; let j = k; for (let i = 0; i < nums.length; i++) { if (j <= nums.length) { let slicedArr = nums.slice(i, j); arr.push(Math.max(...slicedArr)); j++ } else { break; } } console.log(arr);¿Cómo puedo optimizar mi código para que pueda ejecutar todos los casos de prueba?