c++ 面试题(算法类)

Posted zpcoding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ 面试题(算法类)相关的知识,希望对你有一定的参考价值。

1,从无序的数据流中找到其中位数:(用大根堆和小根堆来实现)

技术图片
 1 float getMidimum(vector<int>& nums) {
 2     priority_queue<int> bigHeap; // 大数优先
 3     priority_queue<int, vector<int>, greater<int>> smallHeap;  // 小数优先
 4     for (int i = 0; i < nums.size(); ++i) {   // 对每一个输入的元素
 5         if (bigHeap.empty() || nums[i] < bigHeap.top())
 6             bigHeap.push(nums[i]);
 7         else
 8             smallHeap.push(nums[i]);
 9     
10         while (bigHeap.size() > smallHeap.size() + 1) {
11             smallHeap.push(bigHeap.top());
12             bigHeap.pop();
13         }
14         while (smallHeap.size() > bigHeap.size() + 1) {
15             bigHeap.push(smallHeap.top());
16             smallHeap.pop();
17         }
18     }
19     float temp;// 如果两个堆大小相等
20     if (bigHeap.size() == smallHeap.size()) {
21         temp = float(bigHeap.top() + smallHeap.top()) / 2;
22     }
23     else if (bigHeap.size() < smallHeap.size())  // 如果小堆多一个元素
24         temp =  smallHeap.top();
25     else                                         // 如果大堆多一个元素
26         temp =  bigHeap.top();
27     return temp;
28 }
getMidimum

 2,25匹马五条赛道怎么最快选出前三个:(类似于:剑指offer p38::二维数组中的查找)

参考:https://blog.csdn.net/cmsbupt/article/details/17404183

 

以上是关于c++ 面试题(算法类)的主要内容,如果未能解决你的问题,请参考以下文章

《程序员面试金典(第6版)》面试题 08.04. 幂集(回溯算法,位运算,C++)不断更新

3天搞定面试那点C++算法题!

《程序员面试金典(第6版)》面试题 08.08. 有重复字符串的排列组合(回溯算法,全排列问题)C++

秋招已过,各大厂的面试题分享一波 附C++实现

2020年腾讯实习生C++面试题&持续更新中

2020年腾讯实习生C++面试题&持续更新中