Eri*_*urg 3 arrays algorithm search
我正在做一些关于算法的补救工作,因为我正在秋季攻读它们的研究生课程并且是一名物理本科生。观看此视频并在 38:00 标记处,他回顾了 2D 数组的贪婪上升算法。我很困惑,因为他将峰值定义为 a <= b,c,d,e(b、c、d 和 e 是当前元素“a”的左侧、右侧、顶部、底部的元素)。然后他继续说,要找到峰值,您可以遵循与 'a' 接壤的最大元素,但如果您有二维数组怎么办:
20 15 13
12 10 10
40 40 40
并从 13 开始,贪婪上升算法不会错误地将 20 识别为峰值吗?如何在不查看每个元素的情况下搜索未排序的数组?
如果这是一个愚蠢的问题,我感谢您的帮助。
请密切注意这些定义,因为它们与您直觉上所期望的不同。
他将峰值定义为 a <= b,c,d,e(b、c、d 和 e 是当前元素“a”的左侧、右侧、顶部、底部的元素)
所以你有它 - 峰值被定义为局部最大值(一个元素大于其所有直接邻居),而不是全局最大值(一个元素大于所有其他元素)。按照这个定义,很明显,而20是不是在最大的元素是一个高峰。
(如评论中所述,定义可能应该是 a >= b,c,d,e 这可能只是原帖中的一个错字)