LeetCode交流

LeetCode12.30

2018-12-30  本文已影响0人  supermanwasd

4. Median of Two Sorted Arrays

Screen Shot 2018-12-30 at 7.32.04 PM.png

这题目目测也是很难的,我之前看了一个关于刷LeetCode的推送,说刚开始都很难的,因为这毕竟是大公司的面试题,我也感觉Python并不是说的那么全能,在解答这种问题的时候运行速度比Java和C++慢很多,而且会了Python也制造不出来iPhone对吧。于是呢,我就开始在学C语言了,先了解一下考完试学学C++,毕竟我的目标还是很远大的,为什么前面没有更新我不想找理由,不是题难我时间安排不好,我写这个博客就是想分享自己的知识,然后顺便赚点钱,但是之前只有我的一个朋友给我打赏了,感谢她。坚持下去,大家一起加油哦!有问题可以留言问我,看了得到的内容感觉做知识内容就必须要要讲信用,好了下面开始解答。

LeetCode给出的答案:

def median(A, B):
    m, n = len(A), len(B)
    if m > n:
        A, B, m, n = B, A, n, m
    if n == 0:
        raise ValueError

    imin, imax, half_len = 0, m, (m + n + 1) / 2
    while imin <= imax:
        i = (imin + imax) / 2
        j = half_len - I
        if i < m and B[j-1] > A[I]:
            # i is too small, must increase it
            imin = i + 1
        elif i > 0 and A[i-1] > B[j]:
            # i is too big, must decrease it
            imax = i - 1
        else:
            # i is perfect

            if i == 0: max_of_left = B[j-1]
            elif j == 0: max_of_left = A[i-1]
            else: max_of_left = max(A[i-1], B[j-1])

            if (m + n) % 2 == 1:
                return max_of_left

            if i == m: min_of_right = B[j]
            elif j == n: min_of_right = A[I]
            else: min_of_right = min(A[i], B[j])

            return (max_of_left + min_of_right) / 2.0

我的答案:

class Solution:
def findMedianSortedArrays(self, nums1, nums2):
    """
    :type nums1: List[int]
    :type nums2: List[int]
    :rtype: float
    """
    num = nums1 + nums2
    num.sort()
    if len(num)%2 != 0:
        c= int(len(num)/2)
        return num[c]
    else:
        a = num[int(len(num)/2)]
        b = num[(int(len(num)/2) - 1)]
        d = (a+b)/2
        return d
Screen Shot 2018-12-30 at 8.27.16 PM.png

这个题做下来还真的简单,因为Python可能就适合这种题目。

欢迎大家点赞,以及分享让更多人看见。
祝好

上一篇 下一篇

猜你喜欢

热点阅读