面试算法学习集锦
这里都是本人准备下半年秋招的算法学习小结
流浪的侠客
还没有入行的程序猿,坚信自己能成为一个好的程序员。热爱运动旅行烹饪,是个有家天下情怀的青年。
展开
-
寻找节点和最大的子树
问题描述:给一个二叉树,每个节点都是正或负整数,如何找到一个子树,它所有节点的和最大? 思路:采用自底向上的计算。先计算左右子树总和值,用左右子树的总和加上当前节点值,如果当前总和大于最大值,则更新最大值,同时将最大子树根节点更新为当前根。简单说,就是后序遍历。代码:[cpp] view plaincopy原创 2014-10-22 11:11:54 · 1825 阅读 · 0 评论 -
在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数
问题:一个int数组, 比如 array[],里面数据无任何限制,要求求出 所有这样的数array[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。 分析:这题很直观的一个算法是,挨个的查找各个元素是否满足条件,算法的复杂度是O(n^2),太过复杂。转载 2014-06-17 22:45:29 · 4026 阅读 · 0 评论