贪心算法(10)(java)跳跃游戏

题目:

给定一个长度为n的0索引整数数组nums。初始位置为nums [0]。每个元素nums[i]表示从索引i向前跳转的最大长度。换句话说,如果你在nums[i] 处,你可以跳转到任意 nums[i+j] 处:

1.0<=j<=nums [i]

  1. i+j<n

返回到达 nums[n-1)的最小跳跃次数。生成的测试用例可以到达 nums [n- 1]。

解法:1.贪心策略(不推荐)

2,层序遍历。

java 复制代码
public class Solution {
    public int jump(int[]nums){
        int left=0,right=0,maxPos=0,n= nums.length,ret=0;
        while (left<=right){//以防跳不到n-1的位置
            if(maxPos>=n-1)//判断是否以经跳到最后一个位置
            {
                return ret;
            }
            for (int i=left;i<=right;i++)//更新下一层最右端点
            {
                maxPos=Math.max(maxPos,nums[i]+i);

            }
            left=right+1;
            right=maxPos;
            ret++;
        }
        return -1;
    }

    public static void main(String[] args) {
        Solution solution=new Solution();
        int []nums={2,3,1,1,4};
        System.out.println(solution.jump(nums));
    }
}
相关推荐
Rsun0455111 分钟前
3、Java 工厂方法模式从入门到实战
java·开发语言·工厂方法模式
田梓燊12 分钟前
leetcode 142
android·java·leetcode
TMT星球19 分钟前
阿里云连续5年稳居游戏云市场份额第一
游戏·阿里云·云计算
亚空间仓鼠23 分钟前
Ansible之Playbook(三):变量应用
java·前端·ansible
码路飞29 分钟前
昨天还在发 Qwen3.5,今天技术负责人就被阿里云赶走了
java·javascript
程序员老邢36 分钟前
【技术底稿 15】SpringBoot 异步文件上传实战:多线程池隔离 + 失败重试 + 实时状态推送
java·经验分享·spring boot·后端·程序人生·spring
菠萝地亚狂想曲1 小时前
Zephyr_01, environment
android·java·javascript
Arya_aa1 小时前
HTTP与Tmocat服务器与SpringMVC
java·spring boot
YDS8291 小时前
大营销平台 —— 抽奖规则决策树
java·springboot·ddd
酿情师1 小时前
Shiro 反序列化漏洞原理(小白零基础详解)
java·web安全·网络安全