2016年1月30日
摘要: 我们知道堆也是一棵完全二叉树,一般是由数组来实现的。如果父结点的index是k, 那么它的左子结点index为2k+1, 右子结点的index为2k+2. 一个比较自然的想法就是,给树的每个结点标上index, 每个结点的index必须小于树的总结点数目。 实现如下. public class Tr 阅读全文
posted @ 2016-01-30 23:07 Johnson_Lu 阅读(239) 评论(0) 推荐(0) 编辑
  2016年1月29日
摘要: 给定一个包含正数和负数的整数数组,重新排列它,使得所有的负数排在前面,所有的正数排在后面。正数间和负数间的相对顺序保持不变。期望时间复杂度是O(n), 空间复杂度是O(1). 例如: 给定 [-1,2,-2,3,5,-4], 重新排列后变成 [-1,-2,-4,2,3,5] 分析: 1. 最简单的算 阅读全文
posted @ 2016-01-29 20:30 Johnson_Lu 阅读(451) 评论(0) 推荐(0) 编辑
  2016年1月27日
摘要: 完全二叉树的定义: 一棵二叉树,除了最后一层之外都是完全填充的,并且最后一层的叶子结点都在左边。 一个直观的想法, 就是观察一棵完全二叉树,来分析它到底有什么特征。 方法1: 按层遍历二叉树, 从每层从左向右遍历所有的结点 如果当前结点有右孩子, 但没有左孩子, 那么直接返回false 如果当前结点 阅读全文
posted @ 2016-01-27 20:54 Johnson_Lu 阅读(6271) 评论(0) 推荐(0) 编辑