zoukankan      html  css  js  c++  java
  • [LC] 55. Jump Game

    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.

    Example 1:

    Input: [2,3,1,1,4]
    Output: true
    Explanation: Jump 1 step from index 0 to 1, then 3 steps to the last index.

    Solution 1:
    DP
    class Solution {
        public boolean canJump(int[] nums) {
            if (nums == null || nums.length <= 1) {
                return true;
            }
            boolean[] arr = new boolean[nums.length];
            arr[0] = true;
            for (int i = 1; i < nums.length; i++) {
                for (int j = 0; j < i; j++) {
                    if (arr[j] && (j + nums[j] >= i)) {
                        arr[i] = true;
                        break;
                    }
                }
            }
            return arr[nums.length - 1];
        }
    }


    Solution 2:
    Greedy
    class Solution {
        public boolean canJump(int[] nums) {
            int max = 0;
            for (int i = 0; i < nums.length; i++) {
                if (i > max) {
                    return false;
                }
                max = Math.max(max, i + nums[i]);
            } 
            return true;
        }
    }
  • 相关阅读:
    装饰器
    函数的初识
    python的文件操作
    深浅copy
    set集合,是一个无序且不重复的元素集合
    基础数据类型 :字典
    列表的增删改查
    易错点 默认参数陷阱
    js中Array对象常用方法
    printf用法demo
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12048404.html
Copyright © 2011-2022 走看看