今天开始对自己的刷题历程做个记录,也算当作个备忘录把。本人该题的代码如下,刚开始刷题没什么基础所以这应该算是比较暴力的解法,看到的朋友还望不吝赐教啊。
class Solution(object):
def findMedianSortedArrays(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""
Len1=len(nums1);Len2=len(nums2)
if Len1+Len2==1:return nums1[0] if nums1 else nums2[0]
evenMark=1 if (Len1+Len2)%2==0 else 0
index=(Len1+Len2)//2-evenMark
Index1=0;Index2=0;step=0
spill1=0;spill2=0
while step<index:
spill1=Index1==Len1;spill2=Index2==Len2
data1=nums1[Index1] if Index1<Len1 else nums2[Index2+1]
data2=nums2[Index2] if Index2<Len2 else nums1[Index1+1]
Index1+=1 if data1<=data2 or spill2 else 0
Index2+=1 if data2<data1 or spill1 else 0
step+=1
if not evenMark:
data1=nums1[Index1] if Index1<Len1 else nums2[Index2+1]
data2=nums2[Index2] if Index2<Len2 else nums1[Index1+1]
middle=data1 if data1<data2 else data2
return middle
else:
spill1=Index1==Len1;spill2=Index2==Len2
temp1=nums1[Index1] if Index1<Len1 else nums2[Index2+1]
temp2=nums2[Index2] if Index2<Len2 else nums1[Index1+1]
Index1+=1 if temp1<=temp2 or spill2 else 0
Index2+=1 if temp2<temp1 or spill1 else 0
spill1=Index1==Len1;spill2=Index2==Len2
data1=temp1 if temp1<temp2 else temp2
if Len1+Len2-Index1-Index2==1:
data2=nums1[Index1] if spill2 else nums2[Index2]
else:
temp3=nums1[Index1] if Index1<Len1 else nums2[Index2+1]
temp4=nums2[Index2] if Index2<Len2 else nums1[Index1+1]
data2=temp3 if temp3<temp4 else temp4
middle=(data1+data2)/2.0
return middle
分享了在LeetCode上解决寻找两个有序数组中位数问题的心得体会,通过逐步迭代的方式,实现了较为暴力但有效的算法解决方案。

1421

被折叠的 条评论
为什么被折叠?



