1029. Median (25)

来源:互联网 发布:达德网络 编辑:程序博客网 时间:2024/04/27 21:31

这题好像以前时间限制是400ms

前些年的408算法题

最优解好像是比较两个数组的中间值大小,然后舍去小的左边和大的右边,这样重复到最后,这样时间复杂度就是logn

因为pat上有输入,所以时间复杂度至少为O(n)。。。

当然可以利用排好序的条件,遍历两个数组,比较大小排序,最后输出中间值,这样时间复杂度就是O(n)

#include<iostream>#include<vector> #include<algorithm>using namespace std;int n ,m;vector<int> num; int main(){cin>>n;for(int i = 0; i < n; i++){int temp;scanf("%d",&temp);num.push_back(temp);}cin>>m;for(int i = 0; i < m; i++){int temp;scanf("%d",&temp);num.push_back(temp);}sort(num.begin(),num.end());cout<<num[(n + m - 1) / 2];return 0;} 


0 0
原创粉丝点击