要求:1. 有N 行,M列整数数字存储在一个txt文件中(如下),每个数字都不重复,同行数字用空格分开(可能为N个空格),将其从文件中读取出来。
2. 以最大的数值作为起点,开始连线,每个数字只能连接其上下左右4个点中的一个,且所连数字必须比当前数字小,求用一条线所能连接的数字的最大个数(注意:不是最大和),输出个数及所连接的数字。
3. 考虑执行效率。
示例: 如文件中存储为如下格式,则25作为起点,可以做25-18-3或25-20-19-4连线
,而所求的最长连线应为: 25-24-23-22….3-2-1, 共25个。
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
本人只能求出输出个数,请教恩么得到所连的数字
2. 以最大的数值作为起点,开始连线,每个数字只能连接其上下左右4个点中的一个,且所连数字必须比当前数字小,求用一条线所能连接的数字的最大个数(注意:不是最大和),输出个数及所连接的数字。
3. 考虑执行效率。
示例: 如文件中存储为如下格式,则25作为起点,可以做25-18-3或25-20-19-4连线
,而所求的最长连线应为: 25-24-23-22….3-2-1, 共25个。
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
本人只能求出输出个数,请教恩么得到所连的数字
解决方案
40
和你得到最大路径的个数方法大致一样,声明两个整数数组:一个临时性存储每一次尝试的路径的足迹(即所连的数字,逐个压入数组),在循环中每次尝试都被重置和填充。另一个存储到目前为止的最长路径所记录的足迹(即所连的数字)。当新计算的最大步数超过上一次最长的记录,更新最大步数时,也更新一下足迹数组。