数据结构与算法
码农的小梦想
不积跬步无以至千里,不积小流无以成江海!^_^
展开
-
二叉树中何为某一值的路径实现
根据《剑指Offer——名企面试官精讲典型编程题》上d转载 2014-08-19 14:48:00 · 597 阅读 · 0 评论 -
【各种最...】最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和
整理了一个“最”系列的主题,这些题目有点绕,个别的还有别名,混在一块比较乱,就索性放在一起做了个整理,区别的时候要注意子序列与子串的不同,前者不要求连续,后者要求连续;由于大部分跟DP有关,有的还可以渐进寻求多种解法,可以用来做不错的练手。原创 2014-11-17 16:43:31 · 709 阅读 · 0 评论 -
单链表的快速排序算法
今天听同学面友录说道单链表是否可以用快速排序算法,想起自己面百度一面的时候面试官也面到这个问题,由于本人是个小菜鸟,所以花了一个下午的时间整理了一下。算法思想:对于一个链表,以head节点的值作为key,然后遍历之后的节点,可以得到一个小于key的链表和大于等于key的链表;由此递归可以对两个链表分别进行快速。这里用到了快速排序的思想即经过一趟排序能够将小于key的元素放在一边,将转载 2014-10-30 16:48:48 · 960 阅读 · 0 评论 -
先验概率、后验概率与最大似然估计
先验概率、后验概率与似然估计本文假设大家都知道什么叫条件概率了(P(A|B)表示在B事件发生的情况下,A事件发生的概率)。先验概率和后验概率教科书上的解释总是太绕了。其实举个例子大家就明白这两个东西了。假设我们出门堵车的可能因素有两个(就是假设而已,别当真):车辆太多和交通事故。堵车的概率就是先验概率 。那么如果我们出门之前我们听到新闻说今天路上出了个交通事故,那么我们转载 2014-10-28 11:03:59 · 1329 阅读 · 0 评论 -
海量数据处理面试题(july的博客)
海量数据处理面试题(july的博客),讲的很好网址:http://blog.csdn.net/v_july_v/article/details/7382693转载 2014-10-08 22:21:32 · 777 阅读 · 0 评论 -
寻找直方图中面积最大的矩形
今天看了一个算法题,觉得转载 2014-10-26 21:19:28 · 514 阅读 · 0 评论 -
红黑树的理解与学习&左旋与右旋操作
http://zh.wikipedia.org/wiki/%E7%BA%A2%E9%BB%91%E6%A0%91#.E7.94.A8.E9.80.94.E5.92.8C.E5.A5.BD.E5.A4.84原创 2014-10-08 15:36:34 · 3862 阅读 · 0 评论 -
求数组中的最长递增子序列
题目:输入一个整形数组,求这个数组中最长递增子序列的长度。假设数组为1, -1, 2, -3, 4, -5, 6, -7。我们定义LIS[N]数组,其中LIS[i]用来表示以array[i]为最后一个元素的最长递增子序列。使用i来表示当前遍历的位置:当i = 0 时,显然,最长的递增序列为(1),则序列长度为1。则LIS[0] = 1当i = 1 时,由于-1转载 2014-09-28 13:21:34 · 557 阅读 · 0 评论 -
判断输入的数组是不是某个BST的前序遍历序列
研究了《剑指Offer——名企面试官精讲典型编程题》上的代码原创 2014-08-19 11:00:26 · 1591 阅读 · 0 评论 -
STL中的traits编程技巧
侯捷老师在《STL源码剖析》中说到:了解traits编程技术,就像获得“芝麻开门”的口诀一样,从此得以一窥STL源码的奥秘。如此一说,其重要性就不言而喻了。 之前已经介绍过迭代器,知道了不同的数据结构都有自己专属的迭代器,不同的迭代器也有不同的特性,由于算法的接口是统一的,通过迭代器的不同属性,算法自动选择正确的执行流程,在完全任务的同时,也尽可能提高算法的执行效率。那算法如何获知转载 2014-08-29 14:55:16 · 895 阅读 · 0 评论 -
输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于m问题
#include #include using namespace std;//输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,//使其和等于m ,要求将其中所有的可能组合列出来.//FindSum(sum,n)=FindSum(sum-n,n-1)+FindSum(sum,n-1);bool FindSum(int sum, int n, vector &转载 2014-09-22 22:27:08 · 2414 阅读 · 0 评论 -
C/C++的程序占用的内存分布
原文地址:http://www.douban.com/group/topic/10733356/转载 2014-08-12 10:19:01 · 700 阅读 · 0 评论 -
C++中成员函数的重载、覆盖与隐藏
成员函数的重载、覆盖与隐藏成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与转载 2014-08-27 23:45:49 · 620 阅读 · 0 评论 -
自己整理的KMP算法
第一部分、KMP算法初解1、普通字符串匹配BF算法与KMP算法的时间复杂度比较 KMP算法是一种线性时间复杂的字符串匹配算法,它是对BF算法(Brute-Force,最基本的字符串匹配算法的)改进。对于给的原始串S和模式串P,需要从字符串S中找到字符串P出现的位置的索引。BF算法的时间复杂度O(strlen(S) * strlen()),空间复杂度O(1)。KMP算法的时间复原创 2014-08-09 19:04:54 · 757 阅读 · 0 评论 -
二叉树镜像的非递归实现
实现了二叉树的镜像,代码如下:原创 2014-08-19 11:16:29 · 1606 阅读 · 0 评论 -
中缀表达式转换为前缀及后缀表达式并求值(java实现)
转载自:http://www.java3z.com/cwbwebhome/article/article8/83542.html?id=4612它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。举例:(3 + 4) × 5 - 6 就是中缀表达式- × +转载 2014-12-03 16:56:42 · 5821 阅读 · 1 评论