<p>我认为您可以通过以下方法提高性能:</p>
<ol>
<li>在避免<code>recursion limit</code>的大数据中,可以使用<code>iteration</code>而不是<code>recursion</code></li>
<li>为了增强<code>query</code>和<code>modify</code>在<code>L</code>中的性能,可以将<code>L</code>预处理成<code>set</code></li>
<li>对于算法,<code>BFS</code>在这里是合适的。你知道吗</li>
</ol>
<p>以下是我的解决方案:</p>
<pre><code>from collections import deque
L = [[0, 0], [1, 0], [5, 3], [1, 1], [5, 4], [2, 2]] # e.g.
# convert to set for query and modify performance, change list to immutable tuple.
L = set(map(tuple, L))
S = []
while L:
# start from a random point
start = L.pop()
queue, visited, cur_s = deque([start]), set([start]), [start]
while queue:
node = queue.popleft()
visited.add(node)
i, j = node
# find the 4-adjacent neighbors
for neighbor in (i + 1, j), (i - 1, j), (i, j + 1), (i, j - 1):
if neighbor in L and neighbor not in visited:
queue.append(neighbor)
cur_s.append(neighbor)
L.remove(neighbor)
S.append(cur_s)
print(S)
</code></pre>
<p>输出:</p>
<pre><code>[[(5, 4), (5, 3)], [(0, 0), (1, 0), (1, 1)], [(2, 2)]]
</code></pre>
<p>希望这对您有所帮助,如果您还有其他问题,请发表评论。:)</p>