題目來源:
????來源:力扣(LeetCode)
????鏈接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays
????著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有忽舟。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán)笆包,非商業(yè)轉(zhuǎn)載請注明出處迹鹅。
題目描述:
????給定兩個大小分別為?m?和?n?的正序(從小到大)數(shù)組nums1?和nums2垒酬。請你找出并返回這兩個正序數(shù)組的?中位數(shù)?赶么。
示例:
示例 1:
????輸入:nums1 = [1,3], nums2 = [2]
????輸出:2.00000
????解釋:合并數(shù)組 = [1,2,3] 登澜,中位數(shù) 2
示例 2:
????輸入:nums1 = [1,2], nums2 = [3,4]
????輸出:2.50000
????解釋:合并數(shù)組 = [1,2,3,4] 抢蚀,中位數(shù) (2 + 3) / 2 = 2.5
示例 3:
????輸入:nums1 = [0,0], nums2 = [0,0]
????輸出:0.00000
示例 4:
????輸入:nums1 = [], nums2 = [1]
????輸出:1.00000
示例 5:
????輸入:nums1 = [2], nums2 = []
????輸出:2.00000
思路:
? ? 1.合并兩個數(shù)組地沮。
? ? 2.對數(shù)組進行排序
? ? 3.判斷數(shù)組長度是否為奇數(shù)风响,如果是嘉汰,則直接返回數(shù)組中間的數(shù)值
? ? 如果數(shù)組長度是偶數(shù),則返回數(shù)組中間兩個數(shù)的和的二分之一
代碼:
?public static double findMedianSortedArrays(int[] nums1, int[] nums2) {
?????int[] array = Arrays.copyOf(nums1, nums1.length + nums2.length);
?????for (int i = 0; i < nums2.length; i++) {
?????????array[nums1.length + i] = nums2[i];
?????}
?????if (array.length == 0)
?????????return 0.0;
?????if (array.length == 1)
?????????return array[0];
?????Arrays.sort(array);
?????if(array.length % 2 == 1){
?????????return array[array.length / 2 ];
?????}else{
?????????return (array[array.length / 2] + array[array.length / 2 - 1] ) / 2.0;
?????}
?} ??