摘要:
题目描述: 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 分析: 数组中一共有偶数个数。两个数字只出现过一次。 相同数异或在一起等于0,那么将所有数异或最后结果就是只出现过一次的数异或在一起的结果。 那么我们找到结果中的某一位的bit位为1,将整个数组 阅读全文
摘要:
题目描述: 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 分析: 平衡二叉树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树,同时 阅读全文
摘要:
题目描述: 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 分析: 二叉树的深度等于其左子树的深度和右子树的深度两个中最大的深度加一。 代码: 阅读全文
摘要:
题目描述: 统计一个数字在排序数组中出现的次数。 分析: 二分变形。二分查找最左边和最右边k的位置,然后相减加一就是结果。 代码: 阅读全文
摘要:
题目描述: 输入两个链表,找出它们的第一个公共结点。 分析: 设置两个指针,分别从两个链表的头部开始往后遍历。 谁遍历完自己本身的,就从另一个链表开始遍历,这样大家到达第一个公共结点的时候便会相遇。 因为它们都走了它们没有公共部分的长度之和加上一个公共部分的长度。 代码: 阅读全文
摘要:
题目描述: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,si 阅读全文
摘要:
题目描述: 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置。 分析: 用一个数组统计每个字符出现的次数。 再次扫描数组,如果找到第一个字符次数为1的,那么返回它的位置。 代码: 阅读全文
摘要:
题目描述: 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 分析: 用三个指针,*2,*3,*5慢慢往后移,每个丑数都要*2,*3,*5,找出最小的数加入数组中。 如果 阅读全文