欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

1029 Median (25分)

程序员文章站 2022-05-04 15:31:47
...

1029 Median (25分)

#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
    int a[500000];
    int n,m;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    scanf("%d",&m);
    for(int i=0;i<m;i++){
        scanf("%d",&a[n+i]);
    }
    sort(a,a+m+n);
    if((m+n)%2==1){
        printf("%d\n",a[(m+n)/2]);
    }else{
        printf("%d\n",a[(m+n)/2-1]);
    }
}

第一次,参考算法笔记完成,20min

#include<stdio.h>
#include<algorithm>
using namespace std;
#define INF 1e+7
int main(){
    int n,m,s1[200010],s2[200010];
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&s1[i]);
    }
    scanf("%d",&m);
    for(int i=0;i<m;i++){
        scanf("%d",&s2[i]);
    }
    s1[n]=INF;
    s2[m]=INF;
    int i=0,j=0,countt=0;
    int median=(n+m-1)/2;
    while(countt<median){
        if(s1[i]<s2[j])i++;
        else j++;
        countt++;
    }
    if(s1[i]<s2[j])printf("%d\n",s1[i]);
    else printf("%d\n",s2[j]);
    return 0;
}

第二次,参考算法笔记完成,30min