- 博客(3)
- 收藏
- 关注
原创 最大值队列、最大值栈
要求实现一个队列或栈,并且在O(1)的时间内,完成pop()、push()和max()的操作。 1 最大值队列 《剑指Offer》面试题59 用一个正常的队列实现数据的插入和删除,满足FIFO的关系。用一个双向队列保存当前队列中的最大值,并且保证当前最大值始终位于双向队列的前端。如何维护这个双向队列呢? 新数据插入时,将双向队列后部所有比新数据小的元素删除,因为这些元素不可能是未来的最大值了。...
2018-09-29 23:33:13 2207
原创 二分查找及其变式
对于在有序的向量可以使用二分查找的方法,在log(n)log(n)log(n)的时间复杂度内完成查找。应当指出二分查找必须基于“有序”的前提条件。 1 基本程序实现 在一个数组中,查找一个数字的基本程序如下所示。 int binary_search(const vector<int>& nums, int target) { // -1 means target doe...
2018-09-29 13:26:48 552
原创 虚函数与纯虚函数
1 虚函数 C++中的虚函数是实现运行多态的重要工具。关键字为virtual。 下面程序中定义了基类Base和派生类Deriv,派生类中有与基类中的同名函数print().如果定义一个基类指针,但是将其指向派生类对象。那么将指针的类型,调用基类中的print()函数。 #include &amp;lt;iostream&amp;gt; using namespace std; class Base { publ...
2018-09-29 13:22:42 179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人