2016-10-29 148 views
3

我试图寻找一种算法来帮助我找到二维数组中非相邻元素的最大总和。二维数组中非相邻元素的最大总和

对于一维数组,我发现有用的解决方案从: 1)http://www.geeksforgeeks.org/maximum-sum-such-that-no-two-elements-are-adjacent/ 2)https://www.youtube.com/watch?v=UtGtF6nc35g

例如,在一维数组:{3,2,6,2,10} 我将得到最大的总和为19,因为3,6和10是不相邻的。

但是,我无法找到一个可以帮助我的二维数组。我怎样才能找到这个数组中没有水平或垂直相邻元素的整数的最大总和?对角相邻的元素是允许的。

例如:

[3, 2, 6, 2, 10] 
[1, 5, 2, 5, 1] 
[5, 1, 7, 2, 9] 
[3, 9, 1, 8, 2] 

有一个现有的算法来解决这个问题呢?或者,如果我使用另一个数据结构而不是二维数组,它是另一种解决此问题的方法吗?

+0

你有四路相邻或八路吗? –

+0

对不起,没有指定,水平和垂直不允许,但允许对角线邻接。 –

+0

这是关于“如何”或“如何以最佳时间复杂度”?你需要最大值还是近似值?我们在谈论什么尺寸的二维数组? –

回答

相关问题