题目
思路分析
题目要求:找两个有序数组 中位数。
这题 我的第一思路是 找到中位数对应的位置pos
对两个有序数组个数之和分奇偶:
如果是奇数,找到相应位置pos的元素
如果是偶数,找到相应位置pos和pos-1元素的平均值
代码一直会报错 (数组越界等各种问题)
先搁置,以后再写。
以后对每一道leetcode的编码调试,最多20分钟,不能浪费时间。
思路分析(改进)
- 合并两个列表,排序
- 求中位数。
参考博客
代码展示(改进)
def findMedianSortedArrays2(self, nums1, nums2) -> float:
#2个小的有序 合并成一个大的有序
totallen=len(nums1)+len(nums2)
pos=totallen//2
for i in range(len(nums2)): #先把nums2链接到nums1后面
nums1.append(nums2[i])
totalnums = sorted(nums1)
if totallen%2==1:
return totalnums[pos]
else:
return ((totalnums[pos]+totalnums[pos-1])/2)