擅长:python、mysql、java
<p>您的for循环在两个列表上迭代并不断追加较小的值并递增相应的索引是正确的。你知道吗</p>
<pre><code> def merge_lists( list1, list2 ):
sortedList = []
pointer1 = 0
pointer2 = 0
while pointer1 < len( list1 ) and pointer2 < len( list2 ):
if list1[ pointer1 ] < list2[ pointer2 ]:
sortedList.append( list1[ pointer1 ] )
pointer1 += 1
elif list2[ pointer2 ] < list1[ pointer1 ]:
sortedList.append( list2[ pointer2 ] )
pointer2 += 1
elif list1[ pointer1 ] == list2[ pointer2 ]:
sortedList.append( list1[ pointer1 ] )
sortedList.append( list2[ pointer2 ] )
pointer1 += 1
pointer2 += 1
</code></pre>
<p>到目前为止一切都很好。错误发生在之后。在这个时候,至少有一个名单已经用尽了。因此,只需运行2<em>for</em>循环,就可以将未用尽列表中的剩余数字相加。你知道吗</p>
<pre><code> while pointer1 < len( list1 ):
sortedList.append( list1[ pointer1 ] )
pointer1 += 1
while pointer2 < len( list2 ):
sortedList.append( list2[ pointer2 ] )
pointer2 += 1
return sortedList
</code></pre>
<p>简单明了:)</p>