我目前正在从事一个项目,在这个项目中,我需要使用一个包含随机数字的二维数组来执行任务。该数组形成一个网格,表示山峰的高度。我已经解决了除最后一个任务以外的所有任务:
最后一个任务是要查找是否存在一条路径,从最小的山峰到最高点(不一定是最短路径)。路径应由逐渐增高的山峰组成,我不能踏在低于当前位置的山峰上。
以下是一个示例,为简单起见,在 3x3 的网格上表示(原本更大,不一定是正方形的,它是根据用户需求生成的,数字完全是随机的)。
可能的路径包括1-3-7-10、1-3-8-10、1-2-4-5-8-10。 我相信我应该使用某种递归。我读到过a* 寻路算法,但要使用它,我必须有一个带有“障碍物”的“地图”(我不能走的节点=更小的山峰),这正是我做不到的,因为你只能在进行中才会发现它。 我的意思是,我可以将数字7放在“例外列表”上-例如步骤1-9-7是禁止的,但步骤1-3-7-10很完美,因此将7放在例外列表中将是一个错误。
最后一个任务是要查找是否存在一条路径,从最小的山峰到最高点(不一定是最短路径)。路径应由逐渐增高的山峰组成,我不能踏在低于当前位置的山峰上。
以下是一个示例,为简单起见,在 3x3 的网格上表示(原本更大,不一定是正方形的,它是根据用户需求生成的,数字完全是随机的)。
2 4 5
1 3 8
9 7 10
可能的路径包括1-3-7-10、1-3-8-10、1-2-4-5-8-10。 我相信我应该使用某种递归。我读到过a* 寻路算法,但要使用它,我必须有一个带有“障碍物”的“地图”(我不能走的节点=更小的山峰),这正是我做不到的,因为你只能在进行中才会发现它。 我的意思是,我可以将数字7放在“例外列表”上-例如步骤1-9-7是禁止的,但步骤1-3-7-10很完美,因此将7放在例外列表中将是一个错误。
1-3-4-5-8-10
:) - Timwi