fn main() { 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 } }