请给我一些指示,说明为什么我的代码不适用于此作业。我的想法是有一个index
(param) 是 Vector 中的当前位置,而target
(param) 是数组中给定索引的值。然后我要么向上或向下移动,直到达到一个基本情况。但它不起作用。
主要问题是到目前为止它只输出错误的结果。
bool RecursivePuzzle :: SolvableReal(Vector<int> & squares, int index, int target)
{
if (target == 0 && index == squares.size() ) return true;
if (index >= squares.size()) return false;
if (index < 0) return false;
int goUp = squares[index] + index;
int goDown = squares[index] - index;
return SolvableReal(squares, goUp, squares[index]) ||
SolvableReal(squares, goDown, squares[index]);