本文主要是介绍2018链家校招内推-大数据开发工程师笔试编程题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目1(如下截图所示):
分析:一个排序问题
C++实现:
#include<iostream>
using namespace std;void insertSort(int *a,int *b,int n){int tmp_a,tmp_b;//监视哨for(int i=1;i<n;i++){if(b[i]<b[i-1]){tmp_b=b[i];tmp_a=a[i];for(int j=i-1;b[j]>tmp_b&&j>=0;j--){b[j+1]=b[j];a[j+1]=a[j];}b[j+1]=tmp_b;a[j+1]=tmp_a;}}
}int main(){int n,r,avg,res=0;cin>>n;cin>>r;cin>>avg;int a[100000],b[100000],sum=0;for(int k=0;k<n;k++){cin>>a[k];cin>>b[k];sum+=a[k];}int diss=avg*n-sum;insertSort(a,b,n);for(k=0;k<n;k++){int s=a[k];while(s<n&&diss>0){res+=b[k];s++;diss--;}}/*for(k=0;k<n;k++){cout<<a[k]<<b[k]<<endl;}*/cout<<res<<endl;return 0;
}
结果:
题目3(如下截图所示):
分析:先排序,再去重
C++实现:
#include<iostream>
#include<math.h>
#include<vector>
#include<algorithm>
using namespace std;int main(){int n,ct=0;cin>>n;vector<int> d(n,-1);for(int i=0;i<n;i++)cin>>d[i];sort(d.begin(),d.end());for(i=1;i<n;i++){if(d[i]==d[i-1]){ct+=1;}}cout<<d.size()-ct<<endl;for(i=1;i<n;i++){if(d[i]!=d[i-1])cout<<d[i]<<" ";}return 0;
}
结果:
题目2(如下截图所示):
分析:交换排序问题,求最少交换次数;没看懂题目给的提示。
这篇关于2018链家校招内推-大数据开发工程师笔试编程题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!