算法
zhanghuanzj
这个作者很懒,什么都没留下…
展开
-
编程之美2.16最长递增子序列
思想:对每一个长度建立其最大值的记录maxV,当输入一个新值v时,找到最大值小于v的最后一个索引i,若i为maxV的最后一个索引,则最大长度maxL+1,否则maxV[i+1]=v;代码:#include #include #include #include #include #include using namespace std;int find_index(vec原创 2016-04-07 12:50:29 · 521 阅读 · 0 评论 -
数据流中的中位数
数据流中的中位数题目描述:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。思路: 代码:class Solution {public: void Insert(int num) { int size = minHeap.size原创 2016-05-20 15:27:45 · 451 阅读 · 0 评论 -
快慢指针
快慢指针我们可以让两个指针每次递进不同的步数来巧妙的完成一些任务1.判断链表是否有环指定两个指针,快指针每次走两步,慢指针每次走一步,若最终两个指针指向相同的节点,则链表存在环。 代码如下: 2.找到链表环入口通过上面的例子我们可以发现,7号节点和1号节点往前走5步都刚好到达6号节点(链表环的入口),这是巧合还是确实是这样呢? 我们可以进行如下推导: 当快慢指针相遇时,两者走的步数原创 2016-08-03 11:29:56 · 546 阅读 · 0 评论 -
KMP算法
KMP算法:next计算 0 1 2 3 4 5 6 7 8 sub A B C D A B C F Xnext -1 0 0 0 0 1 2 3 0 指前面有多少个匹配相同第0位为标记位-1,第1位为0;第2位对应前一位字符B,next为0,B和A(su原创 2016-04-06 16:55:05 · 358 阅读 · 0 评论