合并两个排序列表以在Python中形成更大排序列表的程序
假设我们有两个排序的列表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:=一个新列表
i:=0,j:=0
当i<(lst0)的大小而j<(lst1)的大小时
在x的末尾插入lst0[i]
在x的末尾插入lst1[j]
i:=i+1,j:=j+1
在x的末尾插入lst0[i]
i:=i+1
在x的末尾插入lst1[j]
j:=j+1
如果lst0[i]>lst1[j],则
否则,当lst0[i]<lst1[j]时,
除此以外,
当i<len(lst0)时
在x的末尾插入lst0[i]
i:=i+1
当j<len(lst1)时
在x的末尾插入lst1[j]
j:=j+1
返回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]