贪心算法(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));
    }
}
相关推荐
大刀爱敲代码2 小时前
基础算法01——二分查找(Binary Search)
java·算法
追风少年1554 小时前
常见中间件漏洞之一 ----【Tomcat】
java·中间件·tomcat
yang_love10114 小时前
Spring Boot 中的 @ConditionalOnBean 注解详解
java·spring boot·后端
周盛欢4 小时前
10分钟读完《有限与无限的游戏》
游戏
郑州吴彦祖7725 小时前
【Java】UDP网络编程:无连接通信到Socket实战
java·网络·udp
spencer_tseng5 小时前
eclipse [jvm memory monitor] SHOW_MEMORY_MONITOR=true
java·jvm·eclipse
鱼樱前端5 小时前
mysql事务、行锁、jdbc事务、数据库连接池
java·后端
Hanson Huang6 小时前
23种设计模式-外观(Facade)设计模式
java·设计模式·外观模式·结构型设计模式
Hanson Huang6 小时前
23种设计模式-生成器(Builder)设计模式
java·设计模式·生成器模式
hakesashou6 小时前
python多线程和多进程的区别有哪些
java·开发语言·jvm