题解 | #取中值#

取中值

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

这题的中位数不需要排序,合并完输出数组的最中间那个数就行。

#include <iostream>
using namespace std;

#define N 1000000
void input(int a[],int n){
	for (int i = 0; i < n; i++)
		cin >>a[i];
}
int merge(int x[],int y[],int z[],int a,int b,int c,int d){
	int j = 0;
	for (int i = a-1;i<b;i++){
		z[j++] = x[i];
	}
	for (int i = c-1;i<d;i++){
		z[j++] = y[i];
	}
	// for (int i = 0;i<j;i++){
	// cout <<z[i]<<endl;
	// }
    return j;
}
void Mysort(int a[],int n){
    for (int i = 0; i<n;i++){
        for (int j = 0; j < n-i-1;j++){
            if (a[j] > a[j+1]){
                int temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
}

int main(){
	int n,m;
	while(cin >>n>>m){
		int x[N],y[N],z[N];
		//输入
		input(x,n);
        input(y,m);

		int a,b,c,d;
		cin>>a>>b>>c>>d;

		int k = merge(x,y,z,a,b,c,d);//合并
		//Mysort(z,k);//排序
        // for(int i = 0; i < k;i++){
        //     cout <<z[i]<<" ";
        // }
        //中位数
        if (k%2!=0)
            cout <<z[k/2];
        else cout <<z[k/2-1];
	}
}

全部评论

相关推荐

死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务