题目:输入两个链表,找出它们的第一个公共结点如果两个链表有公共结点,那么公共结点一定出现在两个链表的尾部如果两链表长度不相等,那么达到公共结点的步数就不一致,如何确保 两个链表从头开始遍历,同步达到公共结点? 这是关键所在如果两链表长度相同,那么就可以同步达到了? 由此,我们就需要 让两个链表长度"...
分类:
其他好文 时间:
2014-06-27 20:27:24
阅读次数:
170
题目:输入一棵二叉树的根节点,求该树的深度题解分析:二叉树具有天然的递归性,首先应该想递归解法/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNod...
分类:
其他好文 时间:
2014-06-27 15:58:59
阅读次数:
206
题目:一个整型数组里除了两个数字之外,其余的数字都出现了两次,求这两个只出现一次的数字题解分析:首先看到数字出现1次,出现2次,应该联想到 异或运算:0^a = aa^a = 0如果数组中只有一个数字出现奇数次,其余都出现偶数次,我们就可以将这些数字全部异或,最后的结果即为所求(因为所有偶数次数字异...
分类:
其他好文 时间:
2014-06-27 14:20:36
阅读次数:
153
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符顺序不变题解分析:两次翻转:第一次翻转整个句子第二次解析出每个单词并将单词翻转void reverse(char* first, char* last){ assert(first != NULL && last != NULL); ...
分类:
其他好文 时间:
2014-06-27 12:04:29
阅读次数:
174
题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s,输入n,打印出s的所有可能的值出现的概率int g_maxValue = 6; // ====================方法一====================void Probability(int number, int* p...
分类:
其他好文 时间:
2014-06-27 11:57:12
阅读次数:
221
题目:输入一个递增排序的数组和一个数字target,在数组中查找两个数使得它们的和正好是target题解分析:一提到有序数组,应该立马联想到 二分查找因为数组已经有序了,我们可以设置两个游标first和last,下标first指向 0, last指向 size() - 1, 然后相加如果相加和 大于...
分类:
其他好文 时间:
2014-06-27 11:53:40
阅读次数:
210
题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接处的所有数字中最小的一个例如输入数组 {3, 32, 321}则打印这3个数字能排成的最小数字 321323两个数字m和n能拼接成数字mn和nm,如果mn [strNumber2][strNumber1], 返回值大于0// ....
分类:
其他好文 时间:
2014-06-26 20:33:35
阅读次数:
227
题目:只包含因子2,3,5的数成为 丑数求从小到大第1500个丑数通常我们把1当作第一个丑数方法一:逐个判断每个整数是不是丑数如何判断一个数是不是丑数? 根据定义,丑数只能被2,3,5整除,也就是说,这个数的因子中只能是2,3,5我们不断用这个数除以2,3,5,直到最后,如果得到1,那么这个数就是丑...
分类:
其他好文 时间:
2014-06-26 18:59:43
阅读次数:
182
题目:在字符串中找出第一个只出现一次的字符题解分析:用空间换时间,使用哈希表,key为字符,value是该字符出现的次数字符是一个长度为8的数据类型,因此总共只有256种可能,我们可以创建一个长为256的数组,每个字符根据其ASCII码值作为数组的下标,即哈希表的key,而相应数组位置存储每个字符出...
分类:
其他好文 时间:
2014-06-26 17:17:23
阅读次数:
223
题目:在数组中的两个数字如果前面一个数字大于后面一个数字,则这两个数字组成一个逆序对题解分析:首先应该想到很简单的一种解法,顺序遍历数组,对每个数,逐个比较该数字和其以后的数字,T(n) = O(n^2)(1)总体的意思就是将数组分成两段,首先求段内的逆序对数量,比如下面两段代码就是求左右两端数组段...
分类:
其他好文 时间:
2014-06-26 11:20:55
阅读次数:
268