远足径算法

时间:2018-03-02 07:40:02

标签: arrays matrix graph-algorithm

输入是一个二维数组A[n][n],表示地理表面的地形图。每个数字代表该区域的高程。输入将是一个起始位置(r,c),指的是条目A[r][c]

如果一个人的海拔相差不超过2,则可以在两个相邻位置之间穿行。邻近只有4个标准罗盘 方向(没有对角线)。如果地图上的一个点可以从A[r][c]到任何相邻条目序列遍历,则可以认为它是可到达的。

我必须编写一个计算网格中所有可到达位置的算法。输出将是具有true / false值的另一个2-D数组R[n][n]。 True表示可达,false表示无法访问。

示例:假设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

相应的输出数组应为:

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

我不确定我是怎么做到这一点的。有人能指出我正确的方向吗?

0 个答案:

没有答案