滴滴笔试

第二题用冒泡排序复杂度太高了?#滴滴#
全部评论
快排+二分,写完通过率0,怒之!Arrays.sort提交
点赞 回复 分享
发布于 2017-08-26 17:09
最好快排思想,然后Arrays.sort
点赞 回复 分享
发布于 2017-08-26 17:05
冒泡。。也太低级了吧。
点赞 回复 分享
发布于 2017-08-26 17:05
第二题不是经典堆排序么?
点赞 回复 分享
发布于 2017-08-26 17:06
第二题直接用sort通过率只有80%,无奈之下用了最小堆;结果写完之后stl中有接口可以直接用
点赞 回复 分享
发布于 2017-08-26 17:06
维护一个最小堆啊
点赞 回复 分享
发布于 2017-08-26 17:08
冒泡,排序k次,通过了啊,为毛说太低级
点赞 回复 分享
发布于 2017-08-26 17:22
不超过10行的python就能搞定。。。
点赞 回复 分享
发布于 2017-08-26 22:06
STL里面的nth_element和partial_sort均可以高效解决此问题,最高效的是nth_element,基本思想是快速排序。具体可以参考本人博客:http://blog.csdn.net/bxw1992/article/details/76695461 void nth_element(vector<int> &vec, int num) 将最小(或最大)的num个数放在数组的开始处。注意num个数是无序的。 主要是利用快速排序的切分操作,源码针对枢轴的选取了优化措施(取待处理区间首、中间、尾3个值中的中间值作为枢轴,防止切分操作退化),这里为了简化,没有对枢轴的选取进行优化。 根据切分函数的返回值,判断是否达到了找出了num个满足要求的数,如果不满足,判断下一处理区间。 #include<iostream> #include<vector> using namespace std; void swap(int &a, int &b) { int temp; temp = a; a = b; b = temp; } int partition(vector<int> &vec,int low,int hi) { int mid = (hi - low) / 2 + low; int pivot = vec[low]; int i = low + 1; int j = hi; while (true) { while (i < hi && vec[i] < pivot) i++; while (j>low && vec[j]>pivot) j--; if (i >= j) break; swap(vec[i], vec[j]); i++; j--; } swap(vec[low],vec[j]); return j; } void nth_element(vector<int> &vec, int num) { int len = vec.size(); int low = 0; int hi = len - 1; while (low<hi) { int j = partition(vec,low,hi); if (j == num - 1) return; else if (j < num - 1) low = j+1; else hi = j - 1; } } void myprint(const vector<int> a) { for (int i = 0; i < a.size(); i++) { cout << a[i] << " "; } cout << endl; } int main() { vector<int> data = { 11,5, 4, 7, 6, 8, 1,10 }; myprint(data); nth_element(data,2); myprint(data); system("pause"); return 0; }
点赞 回复 分享
发布于 2017-08-26 22:06
改进的快排可以做到O(n),冒泡怎么都是平方级
点赞 回复 分享
发布于 2017-08-26 22:07
搜索bfprt算法
点赞 回复 分享
发布于 2017-08-26 22:12
有归并排序做法吗?
点赞 回复 分享
发布于 2017-08-26 22:14
直接一个Arrays.Sort搞定
点赞 回复 分享
发布于 2017-08-26 22:38

相关推荐

10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
评论
点赞
收藏
分享
正在热议
# 25届秋招总结 #
439711次浏览 4483人参与
# 春招别灰心,我们一人来一句鼓励 #
41326次浏览 523人参与
# 北方华创开奖 #
107216次浏览 598人参与
# 地方国企笔面经互助 #
7908次浏览 18人参与
# 虾皮求职进展汇总 #
113287次浏览 880人参与
# 实习,投递多份简历没人回复怎么办 #
2453574次浏览 34845人参与
# 阿里云管培生offer #
119582次浏览 2219人参与
# 实习必须要去大厂吗? #
55548次浏览 959人参与
# 同bg的你秋招战况如何? #
75024次浏览 547人参与
# 提前批简历挂麻了怎么办 #
149746次浏览 1975人参与
# 投递实习岗位前的准备 #
1195558次浏览 18545人参与
# 你投递的公司有几家约面了? #
33165次浏览 188人参与
# 双非本科求职如何逆袭 #
661735次浏览 7392人参与
# 机械人春招想让哪家公司来捞你? #
157584次浏览 2267人参与
# 如果公司给你放一天假,你会怎么度过? #
4708次浏览 53人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11184次浏览 253人参与
# 发工资后,你做的第一件事是什么 #
12333次浏览 61人参与
# 工作中,努力重要还是选择重要? #
35493次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20068次浏览 240人参与
# 实习想申请秋招offer,能不能argue薪资 #
39197次浏览 314人参与
# 我的上岸简历长这样 #
451849次浏览 8086人参与
# 非技术岗是怎么找实习的 #
155829次浏览 2120人参与
牛客网
牛客企业服务