import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param weightsA int整型一维数组
* @param weightsB int整型一维数组
* @return double浮点型
*/
public double findMedianSortedArrays (int[] weightsA, int[] weightsB) {
// write code here
int[] arr = new int[weightsA.length + weightsB.length];
int index = 0;
int indexA = 0;
int indexB = 0;
while (indexA < weightsA.length && indexB < weightsB.length) {
if (weightsA[indexA] < weightsB[indexB]) {
arr[index] = weightsA[indexA];
indexA++;
} else {
arr[index] = weightsB[indexB];
indexB++;
}
index++;
}
while (indexA < weightsA.length) {
arr[index++] = weightsA[indexA++];
}
while (indexB < weightsB.length) {
arr[index++] = weightsB[indexB++];
}
if (arr.length % 2 == 1) {
return arr[arr.length / 2];
}
return (arr[arr.length / 2 - 1] + arr[arr.length / 2]) / 2.0;
}
}
本题偷懒了,直接将两个数组按照从小到大的顺序进行合并,然后求出中位数

京公网安备 11010502036488号