java - 为什么我的 leetcode 递归回溯方法使用这样的参数是错误的?
问题描述
我试图通过以下方法使用递归回溯问题来解决 Leetcode JumpGame。这是错误的,但我的答案只是一个与解决方案不同的变量名。我在递归中使用了“位置”而不是“下一个位置”。你能帮我解释一下原因吗?
我的代码:
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,location,end)){
return true;
}
}
return false;
}
}
解决方案:
public class Jumpgame55 {
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++) {
int nextlocation = Math.min(location + i, end); //jump! location updated
if (backtrack(nums, nextlocation, end)) {
return true;
}
}
return false;
}
}
解决方案
推荐阅读
- r - 由于 rJava 导致 TravisCI 失败
- android - Android Gradle 插件 `registerTransform` 不再对 4.1.x 及更高版本的插件开发者公开
- oracle11g - 同义词不起作用 ORA-00980: 同义词翻译不再有效?
- c# - .NET Core 控制台应用程序如何部署到 Kubernetes?
- amazon-s3 - 如何使用 C# AWS SDK 从 S3 一次下载多个文件
- python - 为什么我在 python3 中得到一个`NameError: name '_ORIENTATION' is not defined`
- python - 在这种情况下如何使用乌龟
- ansible - 尝试在我的 Ansible playbook 中创建用户时出错?
- java - MouseMotionListener 似乎闹鬼
- devops - 我们如何有条件地运行 CircleCI 工作流程?