摘要: 【题目描述】数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。【解决方案】解法一:基于Partition函数的O(n)算法我的代码实现,仅供参考: 1 public static int MoreThanHalfNum(int[] arr) 2 { 3 ... 阅读全文
posted @ 2015-09-14 16:20 叫我霍啊啊啊 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】输入一个字符串,打印出该字符串中字符的所有排列。【解决方案】递归,依次与其后数字交换,交换一次,输出一次。我的代码实现,仅供参考: 1 public static void Permutation(char[] str, int start) 2 { 3 ... 阅读全文
posted @ 2015-09-14 15:58 叫我霍啊啊啊 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树种结点指针的指向。【解决方案】我的代码实现,仅供参考: 1 public static BinaryTreeNode Convert(BinaryTreeNode root) ... 阅读全文
posted @ 2015-09-14 15:57 叫我霍啊啊啊 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】请实现函数ComplexListNode* Clone(ComplexListNode* pHead)。复制一个复杂链表,每个结点,除了有一个m_pNext指针指向下一个结点,还有一个m_pSibling指向链表中的任意结点或者null。【解决方案】方法二:我的代码实现,仅供参考: 1 ... 阅读全文
posted @ 2015-09-14 15:56 叫我霍啊啊啊 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶节点所经过的结点形成一条路径。【解决方案】用栈来存储路径,递归调用来遍历各个路径,如果符合条件,则进行打印。考虑测试用例:1. 二叉树中有一条或多条符合条件的路径;2. 二叉树中没有符合条... 阅读全文
posted @ 2015-09-14 15:43 叫我霍啊啊啊 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】输入一个整数数组,判断该数组是不是某二叉搜索树的后续遍历的结果。假设输入的数组的任意两个数字都互不相等。【解决方案】后续遍历的最后一个结点为二叉树的根节点,根据BST的特性,数组中前半部分比根节点大的为其左子树的节点,比他小的为其右子树结点,可以递归解决。考虑情况:1. 完全二叉树;2.... 阅读全文
posted @ 2015-09-14 11:12 叫我霍啊啊啊 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。【解决方案】利用队列实现。我的代码实现,仅供参考: 1 public static void PrintTopToBottom(BinaryTreeNode node) 2 { 3 ... 阅读全文
posted @ 2015-09-14 10:52 叫我霍啊啊啊 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出序列,假设压入栈的所有数字不相等。例如序列1,2,3,4,5是某栈的压栈顺序,序列4,5,3,2,1是该栈对应的一个弹出序列,但是4,3,5,1,2就不可能是该压栈顺序的弹出序列。【解决方案】 1 ... 阅读全文
posted @ 2015-09-14 10:27 叫我霍啊啊啊 阅读(177) 评论(0) 推荐(0) 编辑