01 2018 档案

摘要:题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快 阅读全文
posted @ 2018-01-31 21:06 jeysin 阅读(194) 评论(0) 推荐(0) 编辑
摘要:题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 思路:将数字分成两组,每组包含一个只出现一次的数字,再异或求解,时间复杂度为O(logn),空间复杂度为O(1) 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一 阅读全文
posted @ 2018-01-31 20:32 jeysin 阅读(135) 评论(0) 推荐(0) 编辑
摘要:题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 思路:基于后序遍历,边遍历边判断,时间复杂度为O(n) 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 思路:基于后序遍历,边遍历边判断,时间复杂度为O(n) 阅读全文
posted @ 2018-01-31 17:23 jeysin 阅读(147) 评论(0) 推荐(0) 编辑
摘要:题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路:基于深度优先遍历求二叉树深度 1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *left; 5 str 阅读全文
posted @ 2018-01-31 17:06 jeysin 阅读(95) 评论(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 阅读(143) 评论(0) 推荐(0) 编辑
摘要:Determine whether an integer is a palindrome. Do this without extra space. 思路:很容易想到将数字转化为字符串,但是题目要求不使用额外空间,所以考虑反转数字,然后考虑怎样避免溢出,可以用一个long型避免int型的溢出,或者根 阅读全文
posted @ 2018-01-01 10:31 jeysin 阅读(97) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示