搜狐笔试

没有AC一题,
1.最大数 60%
2.国王珠宝 40% (TL)
3.袋鼠过河 60%
第一题说有很大数的情况,不知道问题在哪;
第二题完全暴力求解,结果超时
第三题没有考虑最优解的情况,只是根据给的数字判断能不能过河也通过了60%,233


------

更新:都是大神啊
#搜狐#
全部评论
全A了,提供下项链O(N)解法,代码可以更精简点,过了就没管了 #include <iostream> #include <string> #include <deque> using namespace std; int cut(const string &neck) { int i = 0; int j = 0; int mini = neck.length() / 2; int flag[5] = {0}; int count_f = 5; deque<char> deq; deque<int> pos; while(i < neck.length() / 2 && j < neck.length()) { if(neck[j] <= 'E') { if(deq.empty()) { i = j; deq.push_back(neck[j]); pos.push_back(j); flag[neck[j] - 'A'] = 1; count_f--; } else if(deq.front() == neck[j]) { deq.push_back(neck[j]); pos.push_back(j); flag[neck[j] - 'A']++; char head = deq.front(); while(flag[head - 'A'] > 1) { deq.pop_front(); pos.pop_front(); flag[head - 'A']--; head = deq.front(); i = pos.front(); }; } else { deq.push_back(neck[j]); pos.push_back(j); if(flag[neck[j] - 'A'] == 0) { count_f--; } flag[neck[j] - 'A']++; } if(count_f == 0) { if(mini > j - i + 1) { mini = j - i + 1; } } } j++; } return neck.length() / 2 - mini; } int main() { string neck; while(cin>>neck) { cout<<cut(neck + neck)<<endl; } return 0; }
点赞 回复 分享
发布于 2016-09-21 17:52
2.6赛马网跟我有仇似的
点赞 回复 分享
发布于 2016-09-21 17:41
1 0.4 0.4
点赞 回复 分享
发布于 2016-09-21 17:37
项链60%TLE。。2.6
点赞 回复 分享
发布于 2016-09-21 17:31
同求思路
点赞 回复 分享
发布于 2016-09-21 17:18
Ac 0.8 AC 急着上厕所,不折腾了
点赞 回复 分享
发布于 2016-09-21 17:10
AC 2.4 1 0.8不tle了,但是还有0.2不知为何 0.6 考虑了回跳,但依然0.6不知为何
点赞 回复 分享
发布于 2016-09-21 17:09

相关推荐

07-18 18:05
门头沟学院 Java
挂了&nbsp;正式批求捞
投递滴滴等公司9个岗位
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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