搜狗最后一道笔试题最终收敛值

RT help me#搜狗#
全部评论
sort(data.begin(),data.end()); if(n==r)     cout<<data[n/2]<<endl; else if(n&1)     cout<<data[n/2+(n-r+1)/2]<<endl; else     cout<<data[n/2+(n-r)/2]<<endl; 就随便乱写一通,居然过了70.。。笑了
点赞 回复 分享
发布于 2016-10-14 22:43
30%不知道什么原因,估计是超时了。
点赞 回复 分享
发布于 2016-10-14 21:31
40% gg
点赞 回复 分享
发布于 2016-10-14 21:25
60%。。流中位数模拟
点赞 回复 分享
发布于 2016-10-14 21:24
30%没时间了,暂时也想不到哪里有问题
点赞 回复 分享
发布于 2016-10-14 21:10
#include <iostream> #include <vector> #include <algorithm> using namespace std; int MED(vector<int>data) { int med = -1; sort(data.begin(), data.end()); unsigned long size = data.size(); if (size%2 == 1){ med = data.at(size/2 ); } else { med = data.at(size/2 ); } return med; } int process(vector<int>data,int r) { unsigned long n = data.size(); vector<int> tmp; while (r++ <=n) { for (int i = 0 ; i < n; i ++) { for (int j = 0 ; j < r; j ++) { tmp.push_back(data.at((i + j)%n)); } *(data.begin() + i) = MED(tmp); tmp.clear(); } } sort(data.begin(), data.end()); if (data.at(0) == data.at(n-1)) { return data.at(0); } else return 0; } int main(int argc, const char * argv[]) { int n; int r; int value; int i = 0; vector<int> data; cin>>n; cin>>r; while (i++ < n) { cin>>value; data.push_back(value); } cout<<process(data, r); data.clear(); return 0; } 通过率20%不知道怎么改了
点赞 回复 分享
发布于 2016-10-14 21:04
multiset,不断模拟,可以么
点赞 回复 分享
发布于 2016-10-14 20:54

相关推荐

04-09 09:47
门头沟学院 Java
Arbelite_:2-3k,这工资还不如去摇奶茶
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务