• leetcode — jump-game


    /**
     * Source : https://oj.leetcode.com/problems/jump-game/
     *
     * Created by lverpeng on 2017/7/17.
     *
     * Given an array of non-negative integers, you are initially positioned at the first index of the array.
     *
     * Each element in the array represents your maximum jump length at that position.
     *
     * Determine if you are able to reach the last index.
     *
     * For example:
     * A = [2,3,1,1,4], return true.
     *
     * A = [3,2,1,0,4], return false.
     */
    public class JumpGame {
    
        /**
         * max记录目前能到的最远位置,循环数组,每次max和当前i能到的最远位置作比较,如果比max大,说明能到比原来到更远的位置,更新max
         * 如果max已经大于等于数组长度,则说明能到数组末尾,返回true
         * 如果当前已经大于max说明当前位置已经到不了,返回false
         *
         * 如果上面没有返回,说明不能到数组末尾
         *
         * @param arr
         * @return
         */
        public boolean canJump (int[] arr) {
            if (arr.length <= 0) {
                return false;
            }
            int length = arr.length;
            // 记录最远能到的位置
            int max = 0;
            for (int i = 0; i < max && i < length - 1; i++) {
                if (i + arr[i] > max) {
                    max = i +arr[i];
                }
                if (max >= length - 1) {
                    return true;
                }
            }
            return false;
        }
    
        public static void main(String[] args) {
            JumpGame jumpGame = new JumpGame();
            int[] arr = new int[]{2,3,1,1,4};
            int[] arr1 = new int[]{3,2,1,0,4};
            int[] arr2 = new int[]{3,2,1,0,4,1};
            System.out.println("true---->" + jumpGame.canJump(arr));
            System.out.println("false--->" + jumpGame.canJump(arr1));
            System.out.println("false--->" + jumpGame.canJump(arr2));
        }
    }
    
  • 相关阅读:
    JS中级二
    JS中级一
    JS入门八
    JS入门七
    JS入门六
    JS入门五
    JS入门四
    JS入门三
    JS入门二
    JS入门1
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/7476718.html
Copyright © 2020-2023  润新知