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; } }
本题偷懒了,直接将两个数组按照从小到大的顺序进行合并,然后求出中位数