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