问题描述
我试图通过以下方法使用递归回溯问题解决 Leetcode JumpGame。这是错误的,但我的答案只是一个与解决方案不同的变量名称。我在递归中使用了“位置”而不是“nextPosition”。你能帮我找出原因吗?
我的代码:
class Solution {
public boolean canJump(int[] nums) {
int location=0;
int end=nums.length-1;
return backtrack(nums,location,end);
}
private boolean backtrack(int[] nums,int location,int end){
//end condition
if(location==end){
return true;
}
//recursion
for(int i=1;i<=nums[location];i++){
location=Math.min(location+i,end); //jump! location updated
if(backtrack(nums,end)){
return true;
}
}
return false;
}
}
解决方案:
public class Jumpgame55 {
public boolean canJump(int[] nums) {
int location = 0;
int end = nums.length - 1;
return backtrack(nums,end);
}
private boolean backtrack(int[] nums,int end) {
//end condition
if (location == end) {
return true;
}
//recursion
for (int i = 1; i <= nums[location]; i++) {
int nextlocation = Math.min(location + i,end); //jump! location updated
if (backtrack(nums,nextlocation,end)) {
return true;
}
}
return false;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)