摘要: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有... 阅读全文
posted @ 2015-09-01 23:59 鸭子船长 阅读(243) 评论(0) 推荐(0)
摘要: 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。数字都出现两次,则异或肯定为0。考虑下这个题目的简化版——数组中除一个数字只出现1次外,其它数字都成对出现,要求尽快找出这个数字。根据异或运算的特点,直接异或一次就可以找出这个数字。现在数组中有两个数字只出现... 阅读全文
posted @ 2015-09-01 23:33 鸭子船长 阅读(486) 评论(0) 推荐(0)
摘要: 输入一棵二叉树,判断该二叉树是否是平衡二叉树。方法一:递归,每次求解left,right的深度然后做差判断。之后递归left&&right。 1 class Solution { 2 public: 3 bool IsBalanced_Solution(TreeNode* pRoot) { ... 阅读全文
posted @ 2015-09-01 23:13 鸭子船长 阅读(186) 评论(0) 推荐(0)
摘要: 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路:递归的想法,每次递归,左右子树深度+1,取其中最大值。 1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *lef 阅读全文
posted @ 2015-09-01 22:42 鸭子船长 阅读(162) 评论(0) 推荐(0)
摘要: 采用二分查找的方法,一旦找到,left++,right--,--middle++,扩展查找。开始while(left data ,int k) { 4 int n=data.size(); 5 if(n=0){20 right-... 阅读全文
posted @ 2015-09-01 22:28 鸭子船长 阅读(180) 评论(0) 推荐(0)
摘要: 1、蛮力法: 1 /* 2 struct ListNode { 3 int val; 4 struct ListNode *next; 5 ListNode(int x) : 6 val(x), next(NULL) { 7 } 8 };*/ ... 阅读全文
posted @ 2015-09-01 15:44 鸭子船长 阅读(397) 评论(0) 推荐(0)
摘要: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 1 class Solution { 2 public: 3 int InversePairs(vector data) { 4 int count=... 阅读全文
posted @ 2015-09-01 15:31 鸭子船长 阅读(162) 评论(0) 推荐(0)
摘要: 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置。若为空串,返回-1char大小为8bit,最多256。创建hash[256]计算每个字符出现的次数。 1 class Solution { 2 public: 3 int FirstNotRep... 阅读全文
posted @ 2015-09-01 15:27 鸭子船长 阅读(258) 评论(0) 推荐(0)
摘要: 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 1 class Solution { 2 public: 3 int GetUglyNumber_Solutio... 阅读全文
posted @ 2015-09-01 15:06 鸭子船长 阅读(204) 评论(0) 推荐(0)
摘要: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。string.append 在末尾添加string或char。string.compare,逐个比较,abcd>ab;思路:... 阅读全文
posted @ 2015-09-01 12:09 鸭子船长 阅读(141) 评论(0) 推荐(0)