Enlace de pregunta: https://leetcode-cn.com/problems/jump-game/
Descripción del Título:
Ideas de resolución de problemas:
Para el elemento en la posición i, la posición más lejana a la que puede saltar es i + nums [i]. Si la posición más lejana de un elemento salta más allá o es igual a la posición al final de la matriz, devuelve verdadero.
Es decir, atravesamos los elementos de la matriz a su vez y mantenemos una posición más lejana en tiempo real. Para el elemento atravesado actual, si el elemento está en la posición más lejana, significa que el elemento es alcanzable.
Código:
/**
* @param {number[]} nums
* @return {boolean}
*/
var canJump = function(nums) {
if (nums.length == 1) {
return true;
}
let maxStep;
maxStep = nums[0];
for (let i = 1; i < nums.length; i++) {
if (maxStep >= nums.length - 1) {
return true;
}
if (i <= maxStep && i + nums[i] > maxStep) {
maxStep = i + nums[i];
}
}
return false;
};
Complejidad del tiempo: O (n)
Complejidad espacial: O (1)