摘要: 问题:找出矩阵中前后左右相邻为 1 的区域块块数。 属于 DFS 思想。 将所有 1 塞进一个容器中,从容器中取出一个 1 ,并将相邻走完的 1 也从容器中取出,视为一次取数。重复此操作直至容器中没有元素 1 ,则取出次数就是 1 的区域块块数。 阅读全文
posted @ 2016-01-10 20:26 TonyYPZhang 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 问题:给定一个二叉树,判断其是否平衡。 当二叉树中所有节点的左右子树高度差不大于 1 时,这个二叉树视为平衡二叉树。 解题思路应该算一种分治思想。根据定义,递归地判断,实现判断。 阅读全文
posted @ 2016-01-10 20:13 TonyYPZhang 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 问题:已知课程数量,以及各个课程间的依赖关系,求是否可以满足所有依赖关系把课程上完。 这是典型的拓扑排序应用场景。是否满足所有依赖关系,实际上就是求,在课程为节点、依赖关系为边的图中,是否存在环。若存在还,则不可能满足所有依赖关系把课程上完,反之,则可能。 阅读全文
posted @ 2016-01-10 17:09 TonyYPZhang 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 问题: 给定一个二叉树,将树元素的 *next 指向该元素在树结构中的水平右边节点。 这是广度遍历的一个应用。可以借组队列结构实现广度遍历,求解题目。 阅读全文
posted @ 2016-01-10 11:04 TonyYPZhang 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 问题:给定一个二叉树,树的每个节点都只包含一个数字 0-9,将根节点到叶子节点路径上的元素值组合成一个整数,求所有整数和。 这是一道深度遍历的应用。深度遍历二叉树一般是递归遍历,或者借助栈遍历。每到达一个叶子节点,都需要重新遍历一次根节点到该叶子节点路径的值,借组栈遍历可以实现满足这个需要。 阅读全文
posted @ 2016-01-10 10:39 TonyYPZhang 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 问题:找出二叉搜索树种第 k 小的元素。 一个深度遍历的应用。使用递归、或者借助栈都可以实现深度遍历。本文代码使用递归实现。 阅读全文
posted @ 2016-01-10 10:30 TonyYPZhang 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 问题:给定一个无序数组,找出数组排序后的相邻元素最大间隔。要求 O(n) 时间复杂度,O(n)空间复杂度 解题思路: 思路一:将所有数组全部排序,再一次遍历求得最大的相邻元素间隔值即可。但是排序算法的最小时间复杂度也需要 O(n*logn) ,无法满足要求。 思路二:题目只需要求出最大相邻间隔,可以利用桶排序,避免求出全部元素大小顺序,而得到结果。时间复杂度降低为 O(n)。 阅读全文
posted @ 2016-01-10 01:16 TonyYPZhang 阅读(421) 评论(0) 推荐(0) 编辑