您的位置:首页 > 其它

LeetCode OJ 4. Median of Two Sorted Arrays

2016-03-24 19:26 363 查看

题目大意

  给定两个有序的数组,求中位数。

归并排序:

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
Solution ss = new Solution();
int[] n1 = {10};
int[] n2 = {2,4,6};
System.out.println(ss.findMedianSortedArrays(n1, n2));
}

}

class Solution {
//归并排序
public double findMedianSortedArrays(int[] nums1, int[] nums2) {

int m = nums1.length , n = nums2.length;
int mid = (m+n)>>1;

//合并后的数组
int[] num = new int[m+n];

int i = 0,j = 0,k = 0;

//分别从两个有序的数组中取相对小的数,放在另一个数组中
while(i < m || j < n){
if(i == m){
num[k++] = nums2[j++];
continue;
}
if(j == n){
num[k++] = nums1[i++];
continue;
}
if(nums1[i] < nums2[j])
num[k++] = nums1[i++];
else
num[k++] = nums2[j++];
}
if((m+n)%2 == 1)
return num[mid];
else
return (num[mid-1] + num[mid])/2.0;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: