编写一个程序,找出合并并排序两个有序列表后的第n个最小元素。
- 定义函数
find_smallest_number()
,该函数接受三个参数:两个列表和一个整数n
。 - 假设输入的列表始按升序排序。
- 在函数内部,按升序合并两个列表。
- 然后,从列表中找出第n个最小元素并返回。
- 在函数外部打印第n个最小元素。
例如,对于列表[4, 9, 11]
和[3, 5, 7]
。它的第4个最小元素是7。 这是因为如果按升序合并列表,将得到[3, 4, 5, 7, 9, 11]
。因此,第4个最小元素是7。
# 用你的代码替换___def find_smallest_number(nums1, nums2, n):i = 0i1 = 0i2 = 0l1=len(nums1)l2=len(nums2) res = -1while i1<l1 and i2<l2:if nums1[i1]<nums2[i2]:res=nums1[i1]i1+=1i+=1 elif nums1[i1]>nums2[i2]:res=nums2[i2]i2+=1i+= 1else:res=nums2[i2]i1+=1i2+=1i+=2if i >= n:return reswhile i1<l1: res=nums1[i1]i1+=1i+=1 if i >= n:return reswhile i2<l2: res=nums2[i2]i2+=1i+=1 if i >= n:return res# 接收整数输入并转换为列表 nums1 = list(map(int, input().split()))# 接收整数输入并转换为列表 nums2 = list(map(int, input().split()))# 接收整数输入 n = int(input())result = find_smallest_number(nums1, nums2, n)print(result)