例15 飞行棋

1.问题描述

一维棋盘,起点在棋盘的最左侧,终点在棋盘的最右侧,棋盘上有几个位置和其他位置相连,如果A与B相连,但连接是单向的,即当棋子落在位置A时,可以选择不投骰子,直接移动棋子从A到B,但不能从B移动到A。给定这个棋盘的长度(length)和位置的相连情况(connections),用六面的骰子(点数1~6),问最少需要投几次才能到达终点。

2.问题示例

输入length=10和connections=[[2,10]],输出为1,可以0->2(投骰子),2->10(直接相连)。输入length=15和connections=[[2,8],[6,9]],输出为2,因为可以0->6(投骰子),6->9(直接相连),9->15(投骰子)。

3.代码实现

4.运行结果

棋盘长度:15

连接:[[2,8],[6,9]]

最小需要:2