用 Python 编写程序合并两个排序列表以形成更大的排序列表
pythonserver side programmingprogramming更新于 2026/1/11 0:44:17
假设我们有两个排序列表 A 和 B。我们必须合并它们并形成一个排序列表 C。列表的大小可能不同。
例如,假设 A = [1,2,4,7] 和 B = [1,3,4,5,6,8],则合并后的列表 C 将为 [1,1,2,3,4,4,5,6,7,8]
我们将使用递归来解决这个问题。因此该函数将像下面这样工作 −
- x:= a new list
- i:= 0, j:= 0
- while i < size of (lst0) and j < (lst1) 的大小,则执行
- 如果 lst0[i] > lst1[j],则
- 在 x 的末尾插入 lst1[j]
- j:= j+1
- 否则,当 lst0[i]<lst1[j] 时,则
- 在 x 的末尾插入 lst0[i]
- i:= i+1
- 否则,
- 在 x 的末尾插入 lst0[i]
- 在 x 的末尾插入 lst1[j]
- i:= i+1, j:= j+1
- 如果 lst0[i] > lst1[j],则
- 当 i<len(lst0) 时,执行
- 在 x 的末尾插入 lst0[i]
- i:= i+1
- 当 j<len(lst1) 时,执行
- 在 x 的末尾插入 lst1[j]
- j:= j+1
- return x
让我们看一下实现过程以便更好地理解
示例
class Solution: def solve(self, lst0, lst1): x=[] i=0 j=0 while(i<len(lst0) and j<len(lst1)): if(lst0[i]>lst1[j]): x.append(lst1[j]) j=j+1 elif(lst0[i]<lst1[j]): x.append(lst0[i]) i=i+1 else: x.append(lst0[i]) x.append(lst1[j]) i=i+1 j=j+1 while(i<len(lst0)): x.append(lst0[i]) i=i+1 while(j<len(lst1)): x.append(lst1[j]) j=j+1 return x ob = Solution() print(ob.solve([1,2,4,7], [1,3,4,5,6,8]))
输入
[1,2,4,7], [1,3,4,5,6,8]
输出
[1, 1, 2, 3, 4, 4, 5, 6, 7, 8]
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

