跳跃游戏更正

时间:2017-11-07 01:32:39

标签: java algorithm recursion data-structures dynamic-programming

我不确定如何改进我的跳转游戏问题(https://leetcode.com/problems/jump-game/description/)的解决方案。它似乎在逻辑上正确但我遇到了大型输入的java.lang.Stackoverflow错误,如[nums = [1, 1,1,1,1,1,1,........]]

我知道由于太多的递归调用而导致我溢出,我该如何优化呢?

class Solution {
  public boolean canJump(int[] nums) {
    int []f = new int[1];
    f[0] = 0;
    return help(nums,0,f);
  }
  public static boolean help(int[]nums, int c, int[] f) {
    if(c==nums.length-1) {
      f[0] =1;
      return true;
    }
    if(f[0]==1) return true;
    int val = nums[c];
    for(int i = 1; i <= val; i++) {
      if(f[0]==1) return true;
      return help(nums,(c + i), f);
    }
    return false;
  }
}

0 个答案:

没有答案