diff options
| author | m4siri <git@m4siri.com> | 2025-11-30 22:33:26 +0545 |
|---|---|---|
| committer | m4siri <git@m4siri.com> | 2025-11-30 22:34:13 +0545 |
| commit | c980379392545eeef99c17205cba71b8e382c487 (patch) | |
| tree | 1431c6f5f4ff83f98e61c92456a0908bd8c0d96e /04_median-of-two-sorted-arrays/src | |
| parent | a5e3b1140ec34399e172e0405eb99f323e275a24 (diff) | |
solve: 04_median-of-two-sorted-arrays
Diffstat (limited to '04_median-of-two-sorted-arrays/src')
| -rw-r--r-- | 04_median-of-two-sorted-arrays/src/main.rs | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/04_median-of-two-sorted-arrays/src/main.rs b/04_median-of-two-sorted-arrays/src/main.rs index e7a11a9..3d914a4 100644 --- a/04_median-of-two-sorted-arrays/src/main.rs +++ b/04_median-of-two-sorted-arrays/src/main.rs @@ -1,3 +1,28 @@ fn main() { - println!("Hello, world!"); + let a: Vec<i32> = vec![2,2,4,4]; + let b: Vec<i32> = vec![2,2,2,4,4]; + let median = Solution::find_median_sorted_arrays(a, b); + println!("{}", &median); +} + +struct Solution(()); + +impl Solution { + pub fn find_median_sorted_arrays(nums1: Vec<i32>, nums2: Vec<i32>) -> f64 { + + // nums1.extend_from_slice(&nums2); + // instead of extending, chaining & + // collecting performs better for some reason + let mut nums1 = nums1.into_iter().chain(nums2.into_iter()).collect::<Vec<_>>(); + nums1.sort(); + + let mut mid = nums1.len() / 2; + let result: f64 = if nums1.len() % 2 == 0 { + (nums1[mid - 1] + nums1[mid]) as f64 / 2.0 + } else { + nums1[mid].into() + }; + + result + } } |
