算法
文章平均质量分 83
xualaleilei
这个作者很懒,什么都没留下…
展开
-
常见排序算法小结
排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。 我不喜欢死记硬背,我更偏向于弄清来龙去脉,理解性地记忆。比如下面这张图,我们将围绕这张图来思考几个问题。 上面的这张图来自一个PPT。它概括了数据结构中的所有常见转载 2016-04-04 16:29:39 · 287 阅读 · 0 评论 -
LeetCode题解整理版(一)
Evaluate Reverse Polish Notation 逆波兰表达式求值,经典问题。 遇到数字入栈,遇到符号取栈顶的两个出来运算,再将结果入栈,最后栈里剩下的一个元素就是结果了。 class Solution { public: int evalRPN(vectorstring> &tokens) { // IMPORTANT: Pl转载 2016-04-04 17:30:42 · 1167 阅读 · 0 评论 -
另一种二叉树非递归遍历的实现
众所周知,二叉树的递归遍历十分简单,只有短短几行代码,而且三种遍历方式的代码几乎相同。而传统非递归方法的遍历无论是从代码上,还是理解上,都比递归方法要麻烦不少,尤其是后序遍历最为麻烦。为什么非递归版本的代码就不能像递归版本那样优美呢?其实,非递归版本也是可以做到的。 下面给出二叉树前中后序非递归遍历的代码,前序和后序在LeetCode上都通过了评测,如有错误,欢迎大牛指出。转载 2016-04-09 15:28:44 · 356 阅读 · 0 评论 -
LeetCode题解整理版(二)
Reverse Words in a String 将abc def形式的字符串翻转成def abc,并且去掉多余的空格。 之后执行以下翻转思想: 1、从字符串末尾处遍历。遇到非空格的字符压入栈中,即push_back到temp中储存。遇到空格或者下标 2、将temp翻转。 3、翻转后的temp即是一个单词、追加于ss之后。 循环以上。既得翻转序列。转载 2016-04-09 17:29:07 · 345 阅读 · 0 评论