- Python编程300例:快速构建可执行高质量代码
- 李永华编著
- 267字
- 2021-03-26 23:33:10
例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