上一页 1 ··· 4 5 6 7 8
摘要: 题目:某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。 要注意分析题目,一般排序要么是O(n^2),要么是O(nlogn)。但这里题目特别强调是对一个公司的员工的年龄作排序。员工的数目虽然有几万人,但这几万员工的年龄却只有几十种可能。上班早 阅读全文
posted @ 2015-05-16 22:30 balingybj 阅读(1360) 评论(0) 推荐(0) 编辑
摘要: 有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下:struct ListNode{ int value; ListNode *next; ListNode *sibling; ... 阅读全文
posted @ 2015-05-16 15:07 balingybj 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 带头结点的链表结点定义如下:1 struct ListNode2 {3 int value;4 ListNode *next;5 };代码如下: 1 ListNode* Reverse(ListNode *pHead) 2 { 3 ListNode *pReverse = N... 阅读全文
posted @ 2015-05-16 14:35 balingybj 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 所谓的平衡二叉树,就是指数中任一结点的左右子树深度相差不超过1。下图就是一个平衡二叉树:解法1:很容易想到,遍历每一个结点时,调用函数TreeDepth()求得左右子树的深度,如果所有左右子树的深度相差不超过1,那么该树就是一个平衡二叉树。代码如下: 1 bool isBalan(TreeNode ... 阅读全文
posted @ 2015-05-15 00:08 balingybj 阅读(2580) 评论(0) 推荐(1) 编辑
上一页 1 ··· 4 5 6 7 8