double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size) {
int flag=0;
int h=0;
double result=0;
int n=nums1Size+nums2Size;
int index=n/2;
if(n%2==0){
flag=1;//代表有两个数
}
else index++;
printf("%d\n",index);
int j=0,k=0;
for(int i=0;i<index;i++){
if(j<nums1Size&&k<nums2Size){
if(nums1[j]>nums2[k]){
k++;
h=0;
}
else {
j++;
h=1;
}
}
else if(j<nums1Size){
j++;
h=1;
}
else {
k++;
h=0;
}
printf("%d %d %d\n",j,k,h);
}
if(flag){
if(h){
result=(nums1[j-1]);
}
else{
result=(nums2[k-1]);
}
if(j<nums1Size&&k<nums2Size){
if(nums1[j]>nums2[k]){
k++;
h=0;
}
else {
j++;
h=1;
}
}
else if(j<nums1Size){
j++;
h=1;
}
else {
k++;
h=0;
}
printf("%d %d %d\n",j,k,h);
if(h){
result=(result+nums1[j-1])/2;
}
else{
result=(result+nums2[k-1])/2;
}
}
else{
if(h){
result=nums1[j-1];
}else{
result=nums2[k-1];
}
}
return result;
}
我的代码非常不简洁有时间用其他方法实现一下