PAT 1029. Median (25)
2014-02-21 21:06
411 查看
1029. Median (25)
开始没注意,sort超时。后来发现给定的是两个排序好的数组,O(N)能过了,注意别越界,听说网上还有O(logN)的算法mid表示要删除的个数(这里删小的) 9个的时候要删4个,第5个是median。10个的时候要删4个,第5个是median。
#include<iostream> #include<cstdio> #include<string.h> #include<algorithm> using namespace std; const int N=1000005; typedef long long LL; LL a ,b ; int main(){ int n,m; cin>>n; for(int i=0;i<n;i++) scanf("%lld",&a[i]); cin>>m; for(int i=0;i<m;i++) scanf("%lld",&b[i]); int mid=(n+m-1)/2,la=0,lb=0; while(mid--){ if(la==n) lb++; else if(lb==m) la++; else if(a[la]<b[lb]) la++; else lb++; } LL ans; if(la==n) ans=b[lb]; else if(lb==m) ans=a[la]; else ans=min(a[la],b[lb]); printf("%lld",ans); return 0; }
相关文章推荐
- PAT 1029. Median (25)
- PAT 1029. Median (25) ZZZ想太多系列
- PAT 1029. Median (25)(找出俩个非递减数列的公共的中值,我用优先队列做的)
- 【PAT Advanced Level】1029. Median (25)
- PAT甲级 1029. Median (25)
- PAT-A-1029. Median (25)
- PAT 1029. Median (25)
- PAT(甲级)1029. Median (25)
- PAT 1029. Median (25)
- PAT-A1029. Median (25)
- PAT-1029 Median (25)
- PAT (Advanced Level) 1029. Median (25) 求两个有序数组的中位数,二分
- PAT 1029. Median (25)
- PAT_A 1029. Median (25)
- PAT-A 1029. Median (25)
- 【PAT】1029. Median (25)
- PAT1029.Median (25)
- PAT 甲级 1029. Median (25)
- pat 1029. Median (25)
- 1029. Median (25)-PAT甲级真题(two points)