题解 | #牛群跃迁#

牛群跃迁

https://www.nowcoder.com/practice/565683772800460496f2d10f2388698e?tpId=354&tqId=10588030&ru=/exam/oj&qru=/ta/interview-202-top/question-ranking&sourceUrl=%2Fexam%2Foj

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return bool布尔型
     */
    public boolean can_jump (int[] nums) {
		// 最大跳跃位置
        int maxPosition = 0;
        for (int i = 0; i < nums.length; i++) {
		  // 如果当前索引都比最大跳跃位置大了,说明肯定不能到达下一个点,已经G了
            if (maxPosition < i) {
                return false;
            }
		  // 每次取最大跳跃位置,要最远的
            maxPosition = Math.max(maxPosition, i + nums[i]);
		  // 如果能达到数组结尾,返回true
            if (maxPosition >= nums.length -1) {
                return true;
            }
        }
        return false;
    }
}

本题知识点分析:

1.贪心算法(跳跃位置求最远)

2.数组遍历

3.数学模拟

本题解题思路分析:

1.利用Math.max每次求最远跳跃的距离,这题是跳跃游戏的简单版

2.如果当前索引都比最大跳跃位置大了,说明肯定不能到达下一个点,已经G了

3.如果能达到数组结尾,返回true

本题使用编程语言: Java

全部评论

相关推荐

自由水:这HR已经很好了,多的是已读不回和不读了
点赞 评论 收藏
分享
05-12 16:04
已编辑
江西财经大学 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务