๋ฌธ์ |
There are two sorted arrays nums1 and nums2 of size m and n respectively.
Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
You may assume nums1 and nums2 cannot be both empty.
Example 1:
nums1 = [1, 3] nums2 = [2] The median is 2.0
Example 2:
nums1 = [1, 2] nums2 = [3, 4] The median is (2 + 3)/2 = 2.5
ํ์ด๊ณผ์ |
(1)๊ท์น
- ์๊ฐ๋ณต์ก๋๋ O(log (m+n)) ์ด์ด์ผ๋ง ํฉ๋๋ค.
- num1, num2๋๋ค ๋น์ด์์ง ์์ต๋๋ค.
(2)์์
num2์ ์์๋ฅผ num1์ ์ด์ด๋ถ์ด๊ณ , sort๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ํด์ค ๋ค
๋ฐฐ์ด์ ๊ฐฏ์๊ฐ ์ง์๋ฉด ( [๋ฐฐ์ด๊ธธ์ด/2-1]+[๋ฐฐ์ด๊ธธ์ด/2] ) / 2๋ฅผ ๋ฆฌํด, ํ์๋ผ๋ฉด [๋ฐฐ์ด๊ธธ์ด/2] ๊ฐ์ ๋ฆฌํดํด์ค๋๋ค.
(3)์ฝ๋
class Solution { public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { nums1.insert(nums1.end(), nums2.begin(), nums2.end());//ํฉ์น๊ธฐ sort(nums1.begin(), nums1.end());//์ ๋ ฌ return (nums1.size() % 2 == 0) ? ((double)nums1[nums1.size() / 2 - 1] + (double)nums1[nums1.size() / 2]) / 2 : (double)nums1[nums1.size() / 2]; } }; | cs |
ํต๊ณผ๋ ํ์ง๋ง ๋ฐํ์์๋๋ ๋ฉ๋ชจ๋ฆฌ๋ ๋ณ๋ก์ ๋๋ค. :(
์๋ฃจ์ ์ ๋์์๋ ์ต์ ํ๋ ๋ฒ์ ์ ์ดํดํ๊ณ ๋ค์ ์์ ํ๊ณ ์ถ์ต๋๋ค.
[์ต์ ํ๋ ๋ฒ์ ]
(+20190727 Leet์๋ฃจ์ ๋ณด๋ค ๋ ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ค๋ช ํ ๋ธ๋ก๊ทธ ๋งํฌ๋ฅผ ์ฒจ๋ถํฉ๋๋ค)
https://medium.com/@hazemu/finding-the-median-of-2-sorted-arrays-in-logarithmic-time-1d3f2ecbeb46