我不知道如何弄清楚这个问题,我只是计算机科学的初学者。在二维数组中寻找“轨迹”
输入将是二维数组A [n] [n]数字,表示地形表面的地形图。输入中还有一个起始位置(r,c)。参考条目A [r] [c]
如果您计划登山步道,您将受到相邻条目之间高程差异的限制。一个人可以在两个相邻的地点之间穿行,如果他们的海拔相差不超过2)。邻接只遵循4个标准罗盘方向,(所以我假设没有对角线)。因此,如果地图上的某个点可以通过任何相邻序列序列从A [r] [c]遍历,则认为该点可达。
编写一个计算所有可达位置的算法。输出将是另一个具有true/fals值的二维数组R [n] [n]。 (我假设真正意味着可达,假意味着无法达到)
如果我正确理解这个问题,我可以创建以下矩阵。 (假设A [10] [10]看起来像这样从A [0] [0] :)
50 51 54 58 60 60 60 63 68 71
48 52 51 59 60 60 63 63 69 70
44 48 52 55 58 61 64 64 66 69
44 46 53 52 57 60 60 61 65 68
42 45 50 54 59 61 63 63 66 70
38 42 46 56 56 63 64 61 64 62
36 40 44 50 58 60 66 65 62 61
36 39 42 49 56 62 67 66 65 60
30 36 40 47 50 64 64 63 62 60
50 50 50 50 50 50 50 50 50 50
两个南部和东部是穿越从A [0] [0]所以可达条目是:
50 51 54 58 60 60 60 63 68 71
48 52 51 59 60 60 63 63 69 70
44 48 52 55 58 61 64 64 66 69
44 46 53 52 57 60 60 61 65 68
42 45 50 54 59 61 63 63 66 70
38 42 46 56 56 63 64 61 64 62
36 40 44 50 58 60 66 65 62 61
36 39 42 49 56 62 67 66 65 60
30 36 40 47 50 64 64 63 62 60
50 50 50 50 50 50 50 50 50 50
因此我可以断定,我的结果数组应该是
1 1 0 0 0 0 0 1 0 0
1 1 1 0 0 0 1 1 0 0
0 0 1 0 0 0 1 1 1 0
0 0 1 1 0 0 0 0 1 0
0 0 0 1 0 0 0 0 1 0
0 0 0 1 1 0 0 0 1 1
0 0 0 0 1 1 0 0 1 1
0 0 0 0 1 1 0 0 0 1
0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0
我们的教授要求我们在伪代码来实现这一点。我不知道如何比较两个相邻点和点的4个方向。任何人都可以给我一些想法?