擅长:python、mysql、java
<p>我们注意到,只有当索引值位于最右边或最左边的列或最上面或最下面的行中时,才会得到“rougue”值。你知道吗</p>
<p>顶行/底行rogue值仅为负值或越界值。你知道吗</p>
<p>对于最左侧列中的索引,rogue值将具有%dim=0。你知道吗</p>
<p>对于最右边列中的索引,rogue值将具有%dim=1。你知道吗</p>
<p>因此,我们只需要从中心索引的标准值中过滤掉它们。你知道吗</p>
<pre><code>def all_adjacent(index,dim):
arr = [index+1,index-1,index+dim,index-dim,index+dim+1,index+dim-1,index-dim+1,index-dim-1]
if index%dim==0: ## right most row
arr = filter(lambda x:x%dim!=1,arr)
if index%dim==1: ## left most row
arr = filter(lambda x:x%dim!=0,arr)
arr = filter(lambda x:x>=1 and x<=dim*dim,arr) ## top and bottom rows
return arr
</code></pre>