寻找两个正序数组的中位数-leetcode自解
Posted Fire king
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寻找两个正序数组的中位数-leetcode自解相关的知识,希望对你有一定的参考价值。
思路:跟人平时找中位数一样:
- 合并数组
- 排序
- 分奇偶找
class Solution
public double findMedianSortedArrays(int[] nums1, int[] nums2)
int len1 = nums1.length;
int len2 = nums2.length;
int [] nums3 = new int[len1 + len2];
int len3 = nums3.length;
int j = 0;
//合并
for (int i = 0 ; i < len3 ; i++)
if (i > len1 - 1)
nums3[i] = nums2[j++];
else
nums3[i] = nums1[i] ;
//排序
int[] sorted = Arrays.stream(nums3).sorted().toArray();
//寻找中位数,分奇偶
//1.偶
if (len3 % 2 == 0)
int mid1Index = len3 / 2 - 1;
int mid2Index = mid1Index + 1;
double mid = ((double) sorted[mid1Index] + (double) sorted[mid2Index]) / 2;
return mid;
else
int midFirst = (len3 - 1) / 2 - 1;
double mid = sorted[midFirst + 1];
return mid;
以上是关于寻找两个正序数组的中位数-leetcode自解的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode 4. 寻找两个正序数组的中位数-困难(带图)