找到二维数组中增长最长的子序列

时间:2011-03-20 18:56:27

标签: java multidimensional-array stack

我有这个问题作为家庭作业,我真的不知道从哪里开始。我使用递归算法(#1)实现了解决方案,但我无法弄清楚如何使用堆栈来解决问题......任何帮助都会很棒。

在15 x 15阵列中查找最长的数字序列。例如,如果数组4x4包含

97  47  56  36
35  57  41  13
89  36  98  75
25  45  26  17

然后,最长的数字序列是长度为8的序列,由17,26,36,41,47,56,57,97组成。请注意,增加序列中没有重复。

  1. 设计一个递归算法来解决这个问题并用Java实现它。

  2. 设计非递归算法以使用堆栈解决相同问题。

1 个答案:

答案 0 :(得分:2)

因为这是作业,这里有一个提示: 您可以将数组转换为有向非循环图。 (它是非循环的,因为序列中不允许重复。)之后,您可以使用算法解决最长路径问题,在图中找到最大长度的简单路径。

相关问题