我不确定如何改进我的跳转游戏问题(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;
}
}