JAVA Tutorial
Java File
The problem of finding the median of two sorted arrays is a classic coding interview question. The challenge is to find the median efficiently, with a time complexity of O(log(min(m, n))), where m and n are the sizes of the two arrays. In this article, we’ll walk through a Java solution that employs binary search to achieve this efficiency.
Given two sorted arrays nums1 and nums2, find the median of the two sorted arrays. The overall runtime complexity should be O(log(min(m, n))), where m and n are the sizes of the two arrays.
To solve this problem, we use a binary search approach on the smaller of the two arrays. The goal is to partition both arrays such that the left half contains all elements less than or equal to the elements in the right half. Here’s a step-by-step explanation:
Here’s a detailed Java implementation of the solution:
public class MedianOfTwoSortedArrays { public double findMedianSortedArrays(int[] nums1, int[] nums2) { // Ensure nums1 is the smaller array if (nums1.length > nums2.length) { int[] temp = nums1; nums1 = nums2; nums2 = temp; } int x = nums1.length; int y = nums2.length; int low = 0, high = x; while (low minY) { high = partitionX - 1; } else { low = partitionX 1; } } throw new IllegalArgumentException("Input arrays are not sorted"); } public static void main(String[] args) { MedianOfTwoSortedArrays solution = new MedianOfTwoSortedArrays(); int[] nums1 = {1, 3}; int[] nums2 = {2}; System.out.println("Median: " solution.findMedianSortedArrays(nums1, nums2)); // Output: 2.0 int[] nums1_2 = {1, 2}; int[] nums2_2 = {3, 4}; System.out.println("Median: " solution.findMedianSortedArrays(nums1_2, nums2_2)); // Output: 2.5 } }
This binary search approach provides an efficient solution to finding the median of two sorted arrays. By leveraging binary search on the smaller array, the solution achieves a time complexity of O(log(min(m, n))), making it suitable for large input arrays.
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3