public boolean canJumpTLE(int[] A) {

    boolean[] dp = new boolean[A.length];
    dp[dp.length - 1] = true;

    for (int i = dp.length - 2 ; i >= 0 ; i--) {
      for (int j = 1 ; j <= A[i] ; j++) {
        if (i + j < A.length && dp[i + j]) {
          dp[i] = true;
          break;
        }
      }
    }
    return dp[0];
  }