擅长:python、mysql、java
<p>我知道您希望避免使用“排序”是因为您需要一个更好地描述算法的解决方案,但我真诚地认为pythonic解决方案需要它。你知道吗</p>
<pre><code>def merge_sorted_lists(left,right):
return sorted(left+right)
</code></pre>
<p>对于公开合理算法而不跟踪索引的非pythonic解决方案,可以尝试以下递归解决方案:</p>
<pre><code>def merge_sorted_lists(left,right,acc=[]):
if not left:
return acc + right
if not right:
return acc + left
if left[0] < right[0]:
return merge_sorted_lists(left[1:],right,acc=acc+[left[0]])
else:
return merge_sorted_lists(left,right[1:],acc=acc+[right[0]])
</code></pre>
<p>这一个比我的另一个解决方案长很多行,长输入可能会淹没堆栈。你知道吗</p>