![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
Drecik__
这个作者很懒,什么都没留下…
展开
-
C++ stl算法——partition
函数声明template< class ForwardIt, class UnaryPredicate >ForwardIt partition( ForwardIt first, ForwardIt last, UnaryPredicate p );作用对[first, last)元素进行处理,使得满足p的元素移到[first, last)前部,不满足的移到后部,返回第一个不满足p元素所在的迭代翻译 2018-02-06 11:28:32 · 4674 阅读 · 1 评论 -
75. Find Peak Element
查找无续数组的峰值LintCode链接题目说明给出一个整数数组(size为n),其具有以下特点: - 相邻位置的数字是不同的 - A[0] < A[1] 并且 A[n - 2] > A[n - 1]假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。样例给出数组[1, 2, 1, 3, 4, 5, 7, 6]返回1, 即数值 2 所在位置原创 2018-02-06 11:29:57 · 346 阅读 · 0 评论 -
81. Data Stream Median
数组最中间值LintCode链接题目描述输入的一组数字,返回每次输入新数字之后,该序列的最中间值 说明最中间值的意思是指,一个有序数组的最中间的那个值。如果这个有序数组A的长度n为偶数,则中间值为A[n/2],如果为奇数,中间值为A[(n-1)/2]。例如:如果A=[1,2,3], 中间值为2. 如果A=[1,19], 中间值为1.样例给定输入数字为: [1, 2, 3, 4, 5], 返回 [原创 2018-02-06 11:33:05 · 350 阅读 · 0 评论 -
86. Binary Search Tree Iterator
遍历二查找叉树LintCode链接题目描述设计一个迭代器,该迭代器可以按照以下要求一棵二叉查找树 - 遍历的顺序按照从小到大的排序规则 - next与hasNext的时间复杂度平均为O(1)样例对于下面的二叉树,使用迭代器遍历将按照如下顺序遍历:[1, 6, 10, 11, 12] 10 / \1 11 \ \ 6 12思路首先需要理解二叉查原创 2018-02-06 11:33:44 · 276 阅读 · 0 评论 -
104. Merge k Sorted Lists
合并k个已排序的链表LintCode链接题目描述合并k个已排序的链表样例对于下面三个链表,输出-1->2->4->null[ 2->4->null, null, -1->null],思路对于写过归并排序的人来说,题目比较简单,思路就是从k个链表中,找到当前最小的元素,插入到返回的链表中,并从被选择的链表中删除这元素代码class Solution {public: /**原创 2018-02-06 11:34:21 · 256 阅读 · 0 评论 -
131. Building Outline
画建筑轮廓LintCode链接题目描述水平面上有 N 座大楼,每座大楼都是矩阵的形状,可以用一个三元组表示 (start, end, height),分别代表其在x轴上的起点,终点和高度。大楼之间从远处看可能会重叠,求出 N 座大楼的外轮廓线。 外轮廓线的表示方法为若干三元组,每个三元组包含三个数字 (start, end, height),代表这段轮廓的起始位置,终止位置和高度。 参考下面的图原创 2018-02-06 11:35:09 · 465 阅读 · 0 评论 -
C++对象在作为函数参数时候的拷贝研究
介绍C++对象在作为函数参数以及返回值的copy策略一直是我困扰的一个问题,特别是在今天看到了C++11的新增加的特性std::move以及右值概念之后,激发了我的求知欲,决定把这一块详细的搞清楚。测试对象代码写了个简单的测试对象,在每个不同的构造函数以及析构函数中打印logclass A{public: A() { cout << "construct" <<原创 2018-02-06 11:38:33 · 3130 阅读 · 0 评论