擅长:python、mysql、java
<p>您可以使用一些快捷方式:</p>
<pre><code>class QuickFindUF:
"""docstring for QuickFindUF"""
def __init__(self, n):
self.id = range(n)
def connected(self,p,q):
_id = self.id
return _id[p]==_id[q]
def union(self,p,q):
_id = self.id
pid = _id[p]
qid = _id[q]
for (k, _i) in enumerate(_id):
if (_i == pid):
_id[k]=qid
</code></pre>
<p>注意,<code>__init__</code>中的简化,如@katrielex所指出的,以及使用<code>enumerate</code>而不是在<code>range(len(self.id))</code>上循环。在</p>
<p>使用快捷方式可能更有效(因为您保存了对<code>__getattr__</code>的调用),但不应损害可读性。在</p>