题解 | Median

Median

https://www.nowcoder.com/practice/b5da3f56557f42978ca87afedbd85fbe

#include <iostream>
#include<vector>
using namespace std;

int main() {
    vector<int>v1;
    vector<int>v2;
    string s1;
    int N;
    while (scanf("%d",&N)!=EOF) { // 注意 while 处理多个 case
        int tmp;
        for(int i=0;i<N;i++){
            scanf("%d",&tmp);
            v1.push_back(tmp);
        }
        scanf("%d",&N);
        for(int i=0;i<N;i++){
            scanf("%d",&tmp);
            v2.push_back(tmp);
        }
        int i=v1.size(),j=v2.size();
        int mid;
        if((i+j)%2==0)mid=(i+j)/2-1;
        else mid=(i+j)/2;
        int cnt=-1;
        i=0;j=0;
        while(cnt!=mid){
            if(v1[i]<=v2[j]){
                tmp=v1[i];
                i++;
            }
            else {
                tmp=v2[j];
                j++;
            }
            cnt++;
        }
        printf("%d\n",tmp);
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务