题解 | #几步可以从头跳到尾#

几步可以从头跳到尾

http://www.nowcoder.com/practice/de62bcee9f9a4881ac80cce6da42b135

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 最少需要跳跃几次能跳到末尾
     * @param n int整型 数组A的长度
     * @param A int整型一维数组 数组A
     * @return int整型
     */
    public int Jump (int n, int[] A) {
        // write code here
        int[] jump = new int[n];
        for (int i = 0; i < n; i++) {
            jump[i] = i + A[i];
        }
        int index = 0;
        int res = 0; // 定义一个整型变量,用于存放最终的返回结果
        while (index < n - 1) {
            int accessible = jump[index]; // 当前位置可达的最远距离
            if (accessible >= n - 1) {
                res++;
                break;
            }
            index = findMax(jump, index + 1, accessible);
            res++;
        }
        return res;
    }
    
    public int findMax(int[] jump, int start, int end) {
        int max = start; // 表示的是下标
        for (int i = start; i <= end; i++) {
            if (jump[i] > jump[max]) {
                max = i;
            }
        }
        return max;
    }
}
全部评论

相关推荐

前段时间投boss,实在没绷住,就发出来吧
测开小登的自我救赎:这种就别较真了,感觉应该是那种吃上了学历贬值的时代红利感觉自己也能找一堆92硕士的边角料小公司吧
点赞 评论 收藏
分享
10-30 19:23
已编辑
山东大学(威海) C++
牛至超人:其实简历是不需要事无巨细的写的,让对方知道你有这段经历就行了,最重要的是面试的时候讲细讲明白
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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