算法
文章平均质量分 70
menggesijiu
这个作者很懒,什么都没留下…
展开
-
有关二叉树的常见算法
二叉树,根节点到叶子的所有路径,层次遍历,三种基本遍历,求二叉树的深度,判断是否为平衡树,是否对称,反转原创 2016-08-04 15:39:55 · 524 阅读 · 0 评论 -
算法中常见的Math类问题总结(一)
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2016-09-28 14:32:20 · 445 阅读 · 0 评论 -
Best Time to Buy and Sell Stock I\II\III\IV
Best Time to Buy and Sell Stock(有一个数组,数组中第i个元素表示第i天的股票,如果你只有一次交易机会,买一次卖出一次,就出最大利润。)思路:动态规划法。从前向后遍历数组,记录当前出现过的最低价格,作为买入价格,并计算以当天价格出售的收益,作为可能的最大收益,整个遍历过程中,出现过的最大收益就是所求。O(n)的时间复杂度,O(1)的空间复杂度。 主要代码:min=原创 2016-09-28 16:19:13 · 431 阅读 · 0 评论 -
LeedCode种有关链表List题目总结一
LeedCode种有关链表List题目总结一1.Reverse Linked List(将链表逆置) 思路:采用头插法,从第二个节点开始一个一个往最前面移动。2.Merge Two sorted lists(合并两个排序列表) 思路:对两个链表中的元素进行比较,然后移动即可。先建一个节点作为新链表的头结点,然后比较两个链表中的元素大小,一个一个连接起来,最后返回头结点的next;主要代码如下:原创 2016-10-07 13:50:23 · 491 阅读 · 0 评论 -
LeedCode种有关链表List题目总结二
9.Remove Linked List Elements(给定一个值,删除该链表中所有该值的节点) 思路1:这道题很简单。我的第一反应是先考虑第一个节点的值是不是给定的value,如果是,head = head.next,直到找到第一个不为value的节点,之后再开始标记前驱节点和后面的节点,直接判断值是否为value,若是是则删除,不是下一个。但这个不太好的一点就得分成两部分来写,一部分是找到原创 2016-10-07 14:26:26 · 447 阅读 · 0 评论 -
二叉树的前序、中序、后序非递归遍历
二叉树的前序、中序、后序非递归遍历今天去面试,刚进去就让写一下二叉树的前序非递归遍历,当场有点蒙,虽然以前看过很多遍,但是时间长还是会忘,因此再写篇博客,加深印象,也算是一个小总结。思路:无论遇到什么样的算法题,思路很重要,即使自己没见过的或者是做过又忘了的,都不要慌,冷静下来分析一下。例如,想想二叉树的结构,若想先序遍历,肯定要记录下之前走过的节点,那么肯定要用到栈,剩下的主要考虑什么时候节点进栈原创 2017-03-03 22:59:20 · 356 阅读 · 0 评论