class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int p1=m-1;
int p2=n-1;
if(n==0||m==0){
if(m==0) {
for(int i=0;i<n;i++)
nums1[i]=nums2[i];
}
else{}
}
else{
for(int i=nums1.length-1;i>=0&&p2>=0&&p1>=0;i--){
if(nums1[p1]<=nums2[p2]){
nums1[i]=nums2[p2];
if(p2==0){
while(p1>=0)
nums1[--i]=nums1[p1--];
}
p2--;
}else{
nums1[i]=nums1[p1];
if(p1==0){
while(p2>=0)
nums1[--i]=nums2[p2--];
}
p1--;
}
}
}
}
}
求两个有序数组的中位数
class Solution {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int [] num=new int[nums1.length+nums2.length];
// System.arraycopy(nums1,0,num,0,nums1.length);
// System.arraycopy(nums2,0,num,nums1.length,nums2.length);
// Arrays.sort(num);
if(nums1.length==0){
num=nums2;
}
else if(nums2.length==0){
num=nums1;
}else{
int p1=nums1.length-1;
int p2=nums2.length-1;
for(int i=num.length-1;i>=0;i--){
if(nums1[p1]<=nums2[p2]){
num[i]=nums2[p2--];
if(p2==-1){
while(p1>=0)
num[--i]=nums1[p1--];
}
}else{
num[i]=nums1[p1--];
if(p1==-1){
while(p2>=0)
num[--i]=nums2[p2--];
}
}
}
}
int a;
int b;
if(num.length%2==0){
a=num.length/2;
b=num.length/2-1;
}else{
a=num.length/2;
b=num.length/2;
}
return (double)(num[a]+num[b])/2;
}
}