看到了别人上传的一份BUPT的面试算法题目。
2、求解一个数组的中位数。
分析:sort时间复杂度,排序,输出中间的数。
#include<bits/stdc++.h>
#define maxn 100010
using namespace std;
typedef long long ll;
ll n,a[maxn];
int main(){
std::ios::sync_with_stdio(false);
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+pos);
cout<<a[(n-1)/2]<<endl;
return 0;
}
3、求解最大连续字串和。
分析:DP问题,。
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define maxn 100010
using namespace std;
typedef long long ll;
int n,a[maxn],dp[maxn],maxx=-inf;
int main(){
std::ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
dp[i]=max(a[i],dp[i-1]+a[i]);
maxx=max(dp[i],maxx);
}
cout<<maxx<<endl;
return 0;
}
4、字符串最长公共前缀