zoukankan      html  css  js  c++  java
  • Jump Game

    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.

    思路:

      贪心算法,每一步都看能达到的最大地点

    我的代码:

    public class Solution {
        public boolean canJump(int[] A) {
            if(A == null || A.length <= 1)    return true;
            int left = 0;
            int right = 0;
            int max = 0;
            int len = A.length;
            while(left <= right)
            {
                max = Math.max(left+A[left],max);
                if(left == right)
                {
                    if(max >= len - 1) return true;
                    if(max <= right)    return false;
                    left = right + 1;
                    right = max;
                }
                else
                    left++;
            }
            return false;
        }
        
    }
    View Code

    他人代码:

        public boolean canJump(int[] A) {
            if (A == null) {
                return false;
            }
            int len = A.length;
            int right = 0;        
            for (int i = 0; i < A.length; i++) {
                right = Math.max(right, i + A[i]);
                if (right == len - 1) {
                    return true;
                }
                if (i == right) {
                    return false;
                }
            }
            return true;
        }
    View Code

    学习之处:

    • 每一步都维护一个能到达的最右侧的位置
  • 相关阅读:
    python 关于mysql 的 API pymysql
    Mysql
    Django的流程和命令行工具
    float属性 与position(定位)
    CSS的优先级与继承
    CSS的引入方式及选择器
    Html5 杂项
    Spring AOP之注解实现
    Spring AOP之xml 配置实现
    Java 正则表达式
  • 原文地址:https://www.cnblogs.com/sunshisonghit/p/4337496.html
Copyright © 2011-2022 走看看