[面试]BUPT面试算法题目
看到了别人上传的一份BUPT的面试算法题目。

2、求解一个数组的中位数。
分析:sort时间复杂度OnlognO(nlogn),排序,输出中间的数。

#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问题,dp[i]=max(a[i],dp[i1]+a[i])dp[i]=max(a[i],dp[i-1]+a[i])

#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、字符串最长公共前缀

相关文章: