按降序将两个已排序的列表合并为一个

我已经能够弄清楚如何按升序合并两个已排序的列表,但我无法找到相反方向的方法。如何在不反转字符串的情况下按降序将两个列表合并为一个?


料青山看我应如是
浏览 218回答 1
1回答

慕容森

你只需要以相反的方式做所有事情——从尾部而不是头部检索项目,在进行比较时选择两者中较大的一个,并在另一个用尽时以相反的顺序返回剩余的列表:def merge(lst1, lst2):&nbsp; &nbsp; if not lst1:&nbsp; &nbsp; &nbsp; &nbsp; return lst2[::-1]&nbsp; &nbsp; if not lst2:&nbsp; &nbsp; &nbsp; &nbsp; return lst1[::-1]&nbsp; &nbsp; if lst1[-1] < lst2[-1]:&nbsp; &nbsp; &nbsp; &nbsp; return [lst2[-1]] + merge(lst1, lst2[:-1])&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; return [lst1[-1]] + merge(lst1[:-1], lst2)以便:&nbsp;merge([2,5,9,12], [0,1,3,4,8])会返回:&nbsp;[12, 9, 8, 5, 4, 3, 2, 1, 0]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python