while (res > 0) {while循环每一个循环代表一次有效的跳跃,符合题目最值要求的一跳for (var i = res - 1; i >= 0; i--) {逆向思维,每次跳跃,起始值都是res的左边一位值if (nums[i] + i >= res) {如果满足跳跃基本条件,需要继续尝试跳跃更加远,只有这样才能找到最低跳跃次数中的一跳res = k;将最远距离一跳后的下标赋值给res,就是为了方便下一次while循环,继续跳跃
var jump = function (nums) {
var j = 0;
var res = nums.length - 1;
while (res > 0) {
var k;
for (var i = res - 1; i >= 0; i--) {
if (nums[i] + i >= res) {
k = i;
}
}
res = k;
j += 1;
}
return j;
};