我正尝试编写一个代码,该代码仅在用户给出的int Num为整数的情况下,才允许打印“步长”时打印在二维数组的单元格之间跳转所必须执行的最大步长。旁边的单元格。
我尝试调试,但是第return Q3(A , NUM ,0, 0,0)
行跳过了命令
public class Ex14 {
public static int longestSlope(int[][] A, int num) {
return recursion(0, 0, A, num);
}
private static int recursion(int row, int col, int[][] A, int NUM) {
if (col < A[0].length)
return recursion(row, col + 1, A, NUM);
if (row < A.length)
recursion(row + 1, col, A, NUM);
return Q3(A, NUM, 0, 0, 0);
}
private static int Q3(int[][] A, int NUM1, int ind1, int ind2, int Step) {
if ((ind1 + 1) < A.length && A[(ind1 + 1)][(ind2 + 0)] == A[ind1][ind2] - NUM1)
return Q3(A, NUM1, ind1 + 1, ind2, Step + 1);
if ((ind1 - 1) > A.length && A[(ind1 - 1)][(ind2 + 0)] == A[ind1][ind2] - NUM1)
return Q3(A, NUM1, ind1 - 1, ind2, Step + 1);
if ((ind2 + 1) < A[0].length && A[(ind1 - 0)][(ind2 + 1)] == A[ind1][ind2] - NUM1)
return Q3(A, NUM1, ind1, ind2 + 1, Step + 1);
if ((ind2 - 1) > A[0].length && A[(ind1 + 0)][(ind2 - 1)] == A[ind1][ind2] - NUM1)
return Q3(A, NUM1, ind1, ind2 - 1, Step + 1);
else return Step; //if a cell next to current index is in the same slop move to that cell and add 1 step
}
}
这里是测试人员:
public class Tester14 {
public static void main() {
/* Tester Question 3 */
System.out.println("********** Question 3 **********\n");
int[][] mat = {
{
3,
13,
15,
28,
30
},
{
55,
54,
53,
27,
26
},
{
54,
12,
52,
51,
50
},
{
50,
10,
8,
53,
11
}
};
int num = 1;
System.out.println("Test1: num => 1");
System.out.println("Expected result => 6, Student result = " +
Ex14.longestSlope(mat, num) + "\n");
}
}
答案 0 :(得分:1)
我发现了2个问题:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Calendar;
class Event extends Model
{
protected $fillable = [
'event_name',
'event_color',
'start_date',
'end_date',
];
}
。这两个问题已在此处解决:
>= 0
答案 1 :(得分:0)
我认为您需要重新考虑自己的策略。我猜你的代码没有按照你想要的去做。
这就是您的代码中发生的情况:由于第一个if语句(col),方法递归将首先对其自身进行五次调用,然后由于第二条if语句(行)将其进行五次调用。然后它将五次称为Q3(尽管乍一看我猜是十次)。 Q3中的所有if语句都不能真正满足Q3的要求(总是在0(步骤)上返回/回退。)
请说明“用户提供的int Num是它旁边的单元格的其余部分”。差异(cell1-cell2)是否必须等于Num?如果是这样,请修正样本矩阵,因为没有有效的路径,单元格之间的差为1(数字)。
还解释了跳跃的工作原理。它是否从特定位置开始和/或结束?可以朝任何方向(这里的答案可能是“是”)吗?