[Quetion]
- 두 리스트를 합쳤을 때 오름차순 정렬한 상태에서의 중앙값 반환
- O(log m+n)의 시간복잡도 제한
문제에서 요구한 대로 우선 두 리스트를 더하고, 병합정렬(O nlogn)기반의 sorted() 함수로 정렬하는 방법을 생각했다.
정렬한 리스트의 길이가 홀수일 경우 중앙값을 그대로 반환하고, 짝수이면 중앙값 2개의 평균을 계산하도록 했다.
class Solution:
def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
nums=sorted(nums1+nums2)
mid=len(nums)//2
if len(nums)%2!=0:
return nums[mid]
else:
return (nums[mid] + nums[mid-1])/2
Runtime: 81ms | Memory: 16.4MB
LeetCode 코드 중 Runtime 93%, Memory 84% 해당하는 결과