Java 回溯与递归

Java 回溯与递归,java,backtracking,Java,Backtracking,我有一个布尔数组,它表示一行灯泡。真=灯亮着。错误=错误之光。 规则是,如果在[i]位置打开或打开灯泡,[i]+1和[i]-1中的灯泡将更改为,除非它位于边缘,否则它将仅更改旁边的灯泡。我需要编写一个方法,该方法接收2个布尔数组,并在对第一个数组执行多个操作后,如果开关可以到达第二个数组,则返回true。例如: 'from'数组:{true,false,false,true,true,false} 'to'数组:{false,false,false,true,false,true} -这是正确的

我有一个布尔数组,它表示一行灯泡。真=灯亮着。错误=错误之光。 规则是,如果在[i]位置打开或打开灯泡,[i]+1和[i]-1中的灯泡将更改为,除非它位于边缘,否则它将仅更改旁边的灯泡。我需要编写一个方法,该方法接收2个布尔数组,并在对第一个数组执行多个操作后,如果开关可以到达第二个数组,则返回true。例如: 'from'数组:{true,false,false,true,true,false}

'to'数组:{false,false,false,true,false,true}

-这是正确的,因为您可以先将灯泡换到1位置,然后再换到2位置,然后再换到4位置

-我不允许只使用循环递归,但我甚至不知道答案的逻辑是什么,我应该如何预测一系列动作,或者递归的基本情况是什么

-我被允许使用尽可能多的私有方法


-感谢所有回复者

你的问题是什么?你想让我们写代码吗?您尝试过什么?您在编写递归本身的代码或找出停止条件方面有问题吗?如果您不知道从哪里开始,请尝试在纸上解决问题。你能自己看看你是否能找到一组从
状态到
状态的操作吗?你是怎么做到的?你能在你的推理背后找到一个系统吗?你能用正式的步骤写下来吗?你能在代码中转换这些步骤吗?它是使用递归还是你能把它转换成使用递归?递归编码的问题。我一直试图在纸上写事件树和递归,但没有得到有用的东西。如果你能帮我写代码,我会非常感激的,我将从中学到很多东西。如果不是用代码,那么就给我一些关于这个特定问题答案背后的逻辑的指导,如何检查“to”是合法的