摘要:
题目描述: 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 思路分析: 首先要明确平衡二叉树的定义。平衡二叉是左右子树的高度差小于等于1,且左右子树都为平衡二叉树。这里就存在一个递归判断左右子树是否为平衡二叉树的操作。可以根据之前求二叉树的高度问题来求解,首先求得当前树的左右子树高度,若满足高度差小 阅读全文
摘要:
题目描述: 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 思路分析: 1. 直接想法,每个数字遍历,统计出现次数,复杂度O(n^2),超时。 2. 借助哈希表,空间换时间,遍历一次,时间复杂度O(n),空间复杂度O(n),对于空间复杂度限制为O(1)时 阅读全文
摘要:
题目描述: 统计一个数字在排序数组中出现的次数。 思路分析: 1. 直观思路是直接遍历一遍,统计。复杂度也只要O(n)。 2. 显然这道题要考察的内容不这么简单,实际上考虑二分的思想来完成。分别二分查找第一个k和最后一个k。具体来说,利用二分查找思想,找到k,再判断当前的前一个是否为k或是否为第一个 阅读全文
摘要:
题目描述: 输入两个链表,找出它们的第一个公共结点。 解题思路: 这道题一开始的题意不太理解,这里的公共结点,实际上指结点指相同,在题目不存在结点值相同的不同结点。 1. 最直接的思路是对链表一的每个结点去和链表二中的结点进行比较,这样的复杂度是O(n^2)。 2. 这里的一个小技巧是,从第一个公共 阅读全文
摘要:
题目描述: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007。 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,s 阅读全文