Skip to content

Missing Test Case - 4. Median of Two Sorted Arrays #32604

@SriyaSudha

Description

@SriyaSudha

LeetCode Username

Sriya Sudha

Problem Number, Title, and Link

  1. Median of Two Sorted Arrays and https://leetcode.com/problems/median-of-two-sorted-arrays/description/

Bug Category

Problem constraints

Bug Description

from typing import List

class Solution:
def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
if len(nums1) > len(nums2):
nums1, nums2 = nums2, nums1

    m, n = len(nums1), len(nums2)
    total = m + n
    half = total // 2

    left, right = 0, m

    while left <= right:
        i = (left + right) // 2
        j = half - i

        left1 = nums1[i - 1] if i > 0 else float('-inf')
        right1 = nums1[i] if i < m else float('inf')
        left2 = nums2[j - 1] if j > 0 else float('-inf')
        right2 = nums2[j] if j < n else float('inf')

        if left1 <= right2 and left2 <= right1:
            if total % 2 == 0:
                return (max(left1, left2) + min(right1, right2)) / 2
            else:
                return min(right1, right2)
        elif left1 > right2:
            right = i - 1
        else:
            left = i + 1

    return 0.0 

Language Used for Code

None

Code used for Submit/Run operation

from typing import List

class Solution:
    def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
        if len(nums1) > len(nums2):
            nums1, nums2 = nums2, nums1

        m, n = len(nums1), len(nums2)
        total = m + n
        half = total // 2

        left, right = 0, m

        while left <= right:
            i = (left + right) // 2
            j = half - i

            left1 = nums1[i - 1] if i > 0 else float('-inf')
            right1 = nums1[i] if i < m else float('inf')
            left2 = nums2[j - 1] if j > 0 else float('-inf')
            right2 = nums2[j] if j < n else float('inf')

            if left1 <= right2 and left2 <= right1:
                if total % 2 == 0:
                    return (max(left1, left2) + min(right1, right2)) / 2
                else:
                    return min(right1, right2)
            elif left1 > right2:
                right = i - 1
            else:
                left = i + 1

        return 0.0

Expected behavior

Assumption

Screenshots

No response

Additional context

No response

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions