例如:
public static void main(String[] args) {
/**
* 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数
*/
int[] nums1 = {1,3};
int[] nums2 = {2,4};
int a = nums1.length+nums2.length;
int[] nums3 = new int[a];
/*
方法一
*/
/* //将数组1存储到新数组
for (int i = 0; i <nums1.length ; i++) {
nums3[i] = nums1[i];
}
//将数组2存储到新数组
for (int i = 0; i <nums2.length ; i++) {
nums3[nums3.length-1-i] = nums2[i];
}
//排序
for (int i = 0; i < nums3.length-1 ; i++) {
for (int j = 0; j < nums3.length-i-1 ; j++) {
if(nums3[i]>nums3[i+1]){
int tem = nums3[i];
nums3[i]= nums3[i+1];
nums3[i+1]=tem;
}
}
}*/
/*
方法二
*/
int x =0;//数组一下标的
int y = 0;//数组二下标的
for (int i = 0; i<nums3.length ; i++) {
if(y>=nums2.length||x<nums1.length && nums1[x]<=nums2[y]){
nums3[i]=nums1[x++];
}else {
nums3[i]=nums2[y++];
}
}
//调用方法遍历数组
System.out.println(Arrays.toString(nums3));
//进行中间值判断
int b= nums3.length/2;
if(nums3.length%2!=0){
System.out.println(nums3[b]);
}else {
System.out.println((double)(nums3[b-1]+nums3[b])/2);
}
}