我目前正在做一个项目,在该项目中我必须使用包含随机数的二维数组执行任务。该数组形成一个网格,表示一座山的山峰(高度)。我解决了除最后一项之外的所有任务:
最后一项任务是查找是否存在从最小峰值到最高峰值的路径(不一定是最短的)。路径应该由不断增长的山峰组成,我不能踩到较低的山峰。
为简单起见,这里有一个示例,表示为 3x3 网格(原始的要大得多,并且不必像正方形,它是根据用户的需要生成的,并且数字是完全随机的)。
2 4 5
1 3 8
9 7 10
可能的方式是 1-3-7-10、1-3-8-10、1-2-4-5-8-10。
我很确定,我应该使用某种递归。我读到了一个*探路者,但要使用它,我必须有一个带有“障碍”的“地图”(我无法跨过的节点=较小的峰),而这正是我无法制作的,因为您只能在旅途中找到它。
我的意思是我可以将数字 7 放在“例外列表”上——因为步骤 1-9-7 是被禁止的,但步骤 1-3-7-10 是完美的,所以将 7 放在例外列表上是错误的。