关于如何使函数找到与起点具有相同值的最接近值的任何想法。
例如,如果您有此列表,并且想要找到最接近左上角的1
(也是一个)。
[[1, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 1, 0],
[1, 0, 1, 0, 0, 0]]
最接近的1
将在左下角,然后在左下角的中间一点(您不能沿对角线移动,因此,它比左下角的角更远)。中间层和顶层的一个对象与左上角的起点的距离相等。
我的第一个念头是在列表中搜索第一个出现的对象,并仅通过在受限区域中进行搜索来限制搜索边界。因此,如果您有一个10×10的列表,然后在[0,5]处找到第一个,则可以将搜索范围限制为list[:6][:6]
,因此只能搜索5×5的列表。或者,如果您在[3,0]处找到1
,则搜索可能仅限于list[:4][:4]
。
但是我不认为这是最有效的方法,所以我想知道是否还有其他人有想法或可以参考我的链接来很好地说明这一点。
这是一个常见问题:搜索最短路径。为此,您应该使用广度优先搜索。