摘要: 题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快 阅读全文
posted @ 2018-01-31 21:06 jeysin 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 思路:将数字分成两组,每组包含一个只出现一次的数字,再异或求解,时间复杂度为O(logn),空间复杂度为O(1) 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一 阅读全文
posted @ 2018-01-31 20:32 jeysin 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 思路:基于后序遍历,边遍历边判断,时间复杂度为O(n) 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 思路:基于后序遍历,边遍历边判断,时间复杂度为O(n) 阅读全文
posted @ 2018-01-31 17:23 jeysin 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路:基于深度优先遍历求二叉树深度 1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *left; 5 str 阅读全文
posted @ 2018-01-31 17:06 jeysin 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题目描述 统计一个数字在排序数组中出现的次数 思路:用二分法分别查找数字在数组中出现的开头和结尾的位置,次数=结尾-开头+1,时间复杂度为O(logn) 1 int getFirstK(vector<int> &data, int k) 2 { 3 int begin=0; 4 int end=da 阅读全文
posted @ 2018-01-31 16:54 jeysin 阅读(134) 评论(0) 推荐(0) 编辑