From c980379392545eeef99c17205cba71b8e382c487 Mon Sep 17 00:00:00 2001 From: m4siri Date: Sun, 30 Nov 2025 22:33:26 +0545 Subject: solve: 04_median-of-two-sorted-arrays --- 04_median-of-two-sorted-arrays/Cargo.lock | 7 +++++++ 04_median-of-two-sorted-arrays/src/main.rs | 27 ++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 04_median-of-two-sorted-arrays/Cargo.lock diff --git a/04_median-of-two-sorted-arrays/Cargo.lock b/04_median-of-two-sorted-arrays/Cargo.lock new file mode 100644 index 0000000..863c51c --- /dev/null +++ b/04_median-of-two-sorted-arrays/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "median-of-two-sorted-arrays" +version = "0.1.0" 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 = vec![2,2,4,4]; + let b: Vec = 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, nums2: Vec) -> 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::>(); + 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 + } } -- cgit v1.2.3