- 博客(51)
- 资源 (13)
- 收藏
- 关注
原创 【剑指offer】数组中只出现一次的数字(2)
题目:一个int数组中有三个数字a、b、c只出现一次,其他数字都出现了两次。请找出三个只出现一次的数字。 上篇博文中我们求的是两个只出现一次的数字,且时间复杂度为O(n),这次是三个,可以同样考虑将数组先分成两个子数组,求出其中一个只出现一次的数字,而后再将另一个子数组分成两个子数组,再分别求这两个只出现一次的数字。何海涛的博客给的就是这种思路,并给出了详细的证明过程,详见:http://zhedahht.blog.163.com/blog/static/2541117420128308424641
2014-05-31 13:13:53 5103 2
原创 【剑指offer】数组中只出现一次的数字(1)
思路:上篇博文中已经了解到异或去重的原理,而且知道如果只有一个只出现一次的数字的求法,但这里是有两个只出现一次的数字,我们便要想办法把他分为两个子数组,每个子数组中包含一个只出现一次的数字,其他的数字都出现了两次。剑指offer上的思路很巧妙,依然从头到尾异或所有的数字,这样得到的结果实际上就是两个只出现了一次的数字异或的结果,我们在异或后的结果中找出其二进制中最右边为1的位,该位既然为1,说明异或的两个数字对应的该位肯定不同,必定一个为1,一个为0,因此我们可以考虑根据此位是否为1来划分这两个子数组,这样
2014-05-31 08:59:12 8695 1
原创 【剑指offer】异或去重
或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。它与布尔运算的区别在于,当运算符两侧均为1时,布尔运算的结果为1,异或运算的结果为0。 异或的性质: 1、交换律:a^b = b^a; 2、结合律:(a^b)^c = a^(b^c); 3、对于任意的a:a^a=0,a^0=a,a^(-1)=~a。 了解了上面这些,来看看这个,很重要,后面的程序都要用到这个结论: 对于任意的a,有a^b^c^
2014-05-30 08:51:41 8567 4
原创 【剑指offer】整数中1出现的次数
思路:我们先写一个函数,求出从1到整数n之间1出现的次数,而后分别将要求输入的两个数(具体说,应该是最大的数,和最小的数减去1)作为参数传入该函数,得到的值相减,即可得到二者之间的的数中1出现的次数。 最简单的方法,分别求从1到n之间每个数中的1的个数,由于整数n的位数为O(logn),我们要判断一个数有多少个1,需要判断其每一位是否为1,这样一个数就需要判断O(logn)次,而总共有n个数需要求,那么该方法的时间复杂度为O(nlogn)。在九度OJ上用该方法写的代码测试,会超时。 剑指of
2014-05-30 08:50:39 5880 3
原创 【剑指offer】丑数
思路:最简单的方法就是先通过将一个数不断除以2,3,5来判定该数是不是丑数,而后在从1开始,依次往后判断每个数是不是丑数,并记下丑数的个数,这样当计算的个数为给定值时,便是需要求的第n个丑数,这种方法的时间复杂度为O(k),这里的k为第n个丑数的大小,比如第1500个丑数的大小为859963392,那么就需要判断859963392次,时间效率非常低。 直观的优化措施就是看能不能将时间复杂度降低到O(n),即只在丑数上花时间,而不在非丑数上浪费时间。剑指offer上给的思路很好,用O(n)的辅助空间来
2014-05-30 08:50:29 6771
原创 【剑指offer】数组中的逆序对
思路:最简单的方法是顺序数组,将每个数字与后面的比较,统计逆序对的个数,这种方法的时间复杂度为O(n*n),这种方法写出的代码在九度OJ上测试,会超时。剑指offer给出了归并排序的思路,这个有点难想到啊,也可能是我太弱了,根本没往这方面想!理解了思路,就不难了,将数组划分成两个子数组,再将子数组分别划分成两个子数组,统计每个子数组内的逆序对个数,并将其归并排序,再统计两个子数组之间的逆序对个数,并进行归并排序。这就是归并排序的变种,在归并排序代码的基础上稍作改进即可。 合理还要注意一点:全局变量c
2014-05-30 08:49:58 6183
原创 【剑指offer】翻转单词顺序
题目描述:JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?输入:每个测试案例为一行,表示一句英文句子。我们保证一个句子的单词数不会超过600,每个单词的长度也不会超过30。但是需要注
2014-05-29 08:30:05 3781 2
原创 【剑指offer】左旋转字符串
这道题之前在Cracking the Coding interview上做过类似的,一样的三次反转,即可得到,时间复杂度为O(n),空间复杂度为O(1)。这道题在九度OJ上测试,主要要考虑移动的位数大于字符串长度时的情况,取余即可。
2014-05-29 08:29:57 3881 1
原创 【剑指offer】数字在排序数组中出现的次数
我做这道题,是先用二分查找找到该数字,而后再遍历其前后相同的数字,统计次数。这种做法的平均时间复杂度为O(logn),最坏情况下为O(n),剑指offer上给的思路是两次用二分查找分别找到该数字第一次和最后一次出现的位置,这样的时间复杂度平均和最坏都是O(logn),稍好些》 下面贴上我按照自己思路写的代码:
2014-05-29 08:29:47 3142
原创 【剑指offer】二叉树深度
题目描述:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。输入:第一行输入有n,n表示结点数,结点号从1到n。根结点为1。 n <= 10。接下来有n行,每行有两个个整型a和b,表示第i个节点的左右孩子孩子。a为左孩子,b为右孩子。当a为-1时,没有左孩子。当b为-1时,没有右孩子。输出:输出一个整型,表示树的深度。样例输入:32 3-1 -1-1 -1样例输出:2 之前在Cracking the Co
2014-05-28 08:22:12 3789
原创 【剑指offer】判断二叉树平衡
题目:输入一个二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 剑指offer上给的第二种思路,用后序遍历真的是将递归发挥的淋漓尽致,先遍历节点的左右子树,左右子树都平衡才来判断该节点是否平衡,如果左右子树中有不平衡的,则直接返回false,避免了从上往下逐个节点地计算深度带来的重复遍历节点。 代码如下:
2014-05-28 08:22:06 3618
原创 【剑指offer】删除在另一个字符串中出现的字符
题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 这里主要要分析两个方面: 1、如何判断那些字符是需要删除的字符。同很多字符串问题一样,可以开辟一个哈希数组,全部初始化为false,将第二个字符串中字符对应的映射位置置为ture,表示这些位置对应的字符在第一个字符串中需要删除。 2、关于删除字符的操作,每次删除一个,而后把后面的元素均左移一
2014-05-27 08:26:21 5811
原创 【剑指offer】第一个只出现一次的字符
处理字符串中重复或者次数出现等问题,最常用的就是哈希表,用字符串中的字符作为key,字符出现次数作为value,假定只有ASCII码范围内的字符,则可以开辟一个256大小的int数组,将每个字符(key)映射到该数组的对应位置上,计算每次出现的次数即可,遍历一次字符串,计算每个字符出现的次数,保存在int数组的对应位置上,第二次遍历字符串,若第一次出现某个字符对对应到的哈希表的对应位置处的元素为1,则该字符便是第一个只出现一次的字符,如果我们是遍历哈希表(int数组),则找到的哈希表中的第一个元素为1的位置
2014-05-27 08:25:55 9107
原创 【剑指offer】连续子数组的最大和
题目描述:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天JOBDU测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?输入:输入有多组数据,每组测试数据包括两行。第一行为一个整数n(0<=n<=100000),当n=0时,输入
2014-05-27 08:25:42 3567
原创 【剑指offer】最小的k个数
1、最直观的思路依然是对数组进行快速排序,而后取出前k个元素。这样的时间复杂度为O(nlogn) 2、这里可以采用类似于上面那道题目的基于Partition的方法,只是这次要求的分界点不是中位数,而是第k小的数,即排序后应该位于数组的第k-1个位置上的元素,这样该分界点前面的k个元素(包括该分界点)便是最小的k个数(这k个数字不一定是排序的)。跟上面那道题目分析的一样,这种方法的平均时间复杂度为O(n),最坏情况下的时间复杂度为O(n*n),一样也可以用算法导论上提出的分割数组的方法,将最坏情况下的
2014-05-26 08:16:14 5544 3
原创 【剑指offer】出现次数超过一半的数字
题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。输入:每个测试案例包括2行:第一行输入一个整数n(1<=n<=100000),表示数组中元素的个数。第二行输入n个整数,表示数组中的每个元素,这n个整数的范围是[1,1000000000]。输出:对应每个测试案例,输出出现的次数超过数组长度的一半的数,如果没有输出-1。样例输入:91 2 3
2014-05-25 15:00:56 15734 2
转载 用C语言的rand()和srand()产生伪随机数的方法总结
rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数
2014-05-25 09:45:35 25015
原创 【剑指offer】二叉搜索树转双向链表
思路:这道题目关键在于不能创建新的节点,如不然,我们可以直接将二叉排序树中序遍历保存到一个数组中,而后再建立一个双性链表,将数据保存到双向链表里。 这里不能创建新节点,我们只能改变节点的指向左右子树的节点,让其变为指向二叉链表中的前后节点,很明显这里同样用的是中序遍历,因此这道题目依然是中序遍历的变种,中序递归构造实现即可,每次递归都保存一个指向已构造好的双向链表的尾节点的指针,将其与下一个节点连接起来。 另外,这道题OJ的输出格式与前面的不同,输出样例中又没有说明,我试了三次才AC,前两次
2014-05-23 08:26:32 6077 1
原创 【剑指offer】八皇后问题
剑指offer上解决八皇后问题,没有用传统的递归或非递归回溯法,而是用了很巧妙的全排列法。 先说下八皇后问题:在8 X 8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处于同一行,同一列或者同意对角线上,求出所有符合条件的摆法。 全排列解决八皇后问题的思路如下: 由于8个皇后不能处在同一行,那么肯定每个皇后占据一行,这样可以定义一个数组A[8],数组中第i个数字,即A[i]表示位于第i行的皇后的列号。先把数组A[8]分别用0-7初始化,接下来对该数组做全排列,由于我们
2014-05-23 08:26:25 5683 5
原创 【剑指offer】对面和相等的正方体
剑指offer上的全排列相关题目。 输入一个含有8个数字的数组,判断有么有可能把这8个数字分别放到正方体的8个顶点上,使得正方体上三组相对的面上的4个顶点的和相等。 思路:相当于求出8个数字的全排列,判断有没有一个排列符合题目给定的条件,即三组对面上顶点的和相等。 代码:
2014-05-22 00:21:14 4030
原创 【剑指offer】字符串的组合
剑指offer上的拓展题目,输入一个字符串,输出该字符串的字符的所有组合,比如输入字符串:abc,输出a、b、c、ab、ac、bc、abc。 思路:与上一题类似,也可以用递归求解。可以考虑求长度为n的字符串中m个字符的组合,设为C(n,m)。原问题的解即为C(n, 1), C(n, 2),...C(n, n)的总和。对于求C(n, m),从第一个字符开始扫描,每个字符有两种情况,要么被选中,要么不被选中,如果被选中,递归求解C(n-1, m-1)。如果未被选中,递归求解C(n-1, m)。不管哪种方
2014-05-21 08:22:21 3701
原创 【剑指offer】字符串的排列
昨晚折腾了一个晚上,连这一道题目都没AC,太受打击了!这里倒不是算法的问题,主要是既要考虑输出的字符串按字典序排列,又要去掉重复的字符串。本想直接在不保存所有字符串的前提下,直接按照要求输出字符串,但折腾了一晚上,还是决定放弃了,依然是使用最直接的方法,以空间换取结果,将所有的字符串保存到一个字符串数组中,由于全排列后的字符串数最大为9!=362880,故开辟一个362900大的字符串数组用来保存这些字符串,而后对这些字符串进行排序,先用了选择排序,通过strcpy字符串进行排序,结果争取,但第三组测试用例
2014-05-21 08:22:09 4355
原创 【剑指offer】复杂链表的复制
题目描述:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n (1<=n<=1000):n代表将要输入的链表元素的个数。(节点编号从1开始)。接下来有n个数,表示链表节点中的值。接下来有n个数Ti,Ti表示第i个节点的另一个指针指向。Ti = 0 表示这个指针为NULL。输出:对应每个测试案例,输出n行,每行有二个数,第一个代表当前节点值,第
2014-05-20 08:11:16 2571 1
原创 【剑指offer】二叉树中和为某一值的路径
题目描述:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。输入:每个测试案例包括n+1行:第一行为2个整数n,k(1<=n<=10000),n表示结点的个数,k表示要求的路径和,结点编号从1到n。 接下来有
2014-05-19 08:18:56 5240 1
原创 【剑指offer】两个链表的第一个公共结点
简单题,剑指offer上的第37题,九度OJ上AC。题目描述:输入两个链表,找出它们的第一个公共结点。输入:输入可能包含多个测试样例。对于每个测试案例,输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的两个链表的元素的个数。接下来的两行,第一行为第一个链表的所有元素,中间用空格隔开。第二行为第二个链表的所有元素,中间用空格隔开。输出:对应每个测试案例,输出两个链表的第一个公共结点的值。如果两个链表没有公共结点,则输出“My God”。样例输入:5 41 2 3
2014-05-19 08:18:26 3565
原创 【剑指offer】二叉搜索树的后序遍历序列
剑指offer上的第24题,主要考察递归思想,九度OJ上AC。题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。输入:每个测试案例包括2行:第一行为1个整数n(1<=n<=10000),表示数组的长度。第二行包含n个整数,表示这个数组,数组中的数的范围是[0,100000000]。输出:对应每个测试案例,如果输入数组是某二叉搜索树的后序遍历的结果输出Yes,否则输出No。样例输入:75 7
2014-05-19 08:18:17 4064
原创 【剑指offer】从上向下打印二叉树
剑指offer上的第23题,实际上就是考察二叉树的层序遍历,具体思想可以参考这里。题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行一个整数n(1<=n<=1000, :n代表将要输入的二叉树元素的个数(节点从1开始编号)。接下来一行有n个数字,代表第i个二叉树节点的元素的值。接下来有n行,每行有一个字母Ci。Ci=’d’表示第i个节点有两子孩子,紧接着是左孩子编号和右孩子编号。Ci=’l’表示第i个
2014-05-18 08:14:33 2620
原创 【剑指offer】栈的压入弹出序列
剑指offer上的第22题,九度OJ上AC。题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。输入:每个测试案例包括3行:第一行为1个整数n(1<=n<=100000),表示序列的长度。第二行包含n个整数,表示栈的压入顺序。第三行包含n个整数,表示栈的弹出顺序。输出:对
2014-05-18 08:13:51 4872
原创 【剑指offer】包含min函数的栈
剑指offer上的第21题,之前在Cracking the Coding interview上做过,思路参考这里,这次写了测试函数,在九度OJ上测试通过。题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n(1<=n<=1000000), n代表将要输入的操作的步骤数。接下来有n行,每行开始有一个字母Ci。Ci=’s’时,接下有一个数字k,代表将k压入栈。Ci=’o’时,
2014-05-18 08:13:43 2560
原创 【剑指offer】顺时针打印矩阵
剑指offer上的第20题,九度OJ上测试通过。题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213 14 15 16则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.输入:输入可能包含多个测试样例,对于每个测试案例,输入的第一行包括两个整数m和n(1<=m,n<=1000):表示矩阵的维数为m行n列。接下来的m行,每行包括n个整数,表示矩阵的元素
2014-05-17 12:14:54 5611 3
原创 【剑指offer】二叉树的镜像
这道题目与上道题目一样,采用数组来作为保存二叉树节点的数据结构,会使测试代码更容易编写。具体的实现算法在代码中比较容易看懂,不细说了,主要想说下,测试时遇到的一些问题(最后AC了): 1、先序遍历的输出要符合要求的格式,即对于每一个测试用例来说,输出的各节点元素间要有一个空格,且输出最后一个元素后要没有空格,但要输出一个换行符,这就要判断出程序什么时候遍历输出最后一个元素,再递归实现的先序遍历函数中,我没想到能使最后一个元素符合输出格式的方法,因此我这里定义了一个int数组,用来顺序保存先序遍历的节
2014-05-16 08:39:59 3166 4
原创 【剑指offer】树的子结构
题目描述:输入两颗二叉树A,B,判断B是不是A的子结构。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行一个整数n,m(1<=n<=1000,1<=m<=1000):n代表将要输入的二叉树A的节点个数(节点从1开始计数),m代表将要输入的二叉树B的节点个数(节点从1开始计数)。接下来一行有n个数,每个数代表A树中第i个元素的数值,接下来有n行,第一个数Ki代表第i个节点的子孩子个数,接下来有Ki个树,代表节点i子孩子节点标号。接下来m+1行,与树A描述相同。输出:
2014-05-16 08:39:48 2533
原创 【剑指offer】调整数组顺序
剑指offer上的第14题,九度OJ为了确保输出的结果的唯一性,在输出上做了修改,因此采用的方法自然与书本上不同,这里没有限制,思来想去还是用最简单的方法来做了,非常简单的方法,直接上代码。题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。输入:每个输入文件包含一组测试案例。对于每个测试案例,第一行输入一个n,代表该数组中数字的个数。接下来的一行输入n个整数。代表
2014-05-15 00:04:39 2811 1
原创 【剑指offer】合并两有序单链表
九度OJ上AC,采用归并的思想递归实现。题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。(hint: 请务必使用链表。)输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为两个整数n和m(0<=n<=1000, 0<=m<=1000):n代表将要输入的第一个链表的元素的个数,m代表将要输入的第二个链表的元素的个数。下面一行包括n个数t(1<=t<=1000000):代表链表一中的元素。接下来一行包含m个元素,s
2014-05-14 07:56:35 2804
原创 【剑指offer】递归循环两种方式反转链表
本文分别用非递归和递归两种方式实现了链表的反转,在九度OJ上测试了非递归版本,AC。题目描述:输入一个链表,反转链表后,输出链表的所有元素。(hint : 请务必使用链表)输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n(0<=n<=1000):代表将要输入的链表的个数。输入的第二行包含n个整数t(0<=t<=1000000):代表链表元素。输出:对应每个测试案例,以此输出链表反转后的元素,如没有元素则输出NULL。样例输入:
2014-05-14 07:56:17 7434 1
原创 【剑指offer】链表倒数第k个节点
在Cracking the Code Interview上做过了一次,这次在九度OJ上测试,AC。题目描述:输入一个链表,输出该链表中倒数第k个结点。(hint: 请务必使用链表。)输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为两个整数n和k(0<=n<=1000, 0<=k<=1000):n代表将要输入的链表元素的个数,k代表要查询倒数第几个的元素。输入的第二行包括n个数t(1<=t<=1000000):代表链表中的元素。输出:
2014-05-13 00:24:24 3209
原创 【剑指offer】打印1到最大的n位数
剑指offer第12题,九度OJ测试通过。题目描述:给定一个数字N,打印从1到最大的N位数。输入:每个输入文件仅包含一组测试样例。对于每个测试案例,输入一个数字N(1<=N<=5)。输出:对应每个测试案例,依次打印从1到最大的N位数。
2014-05-12 23:59:11 5484
原创 【算法拾遗】大数相加(不开辟额外空间)
大数相加可以借助多种方法来实现,这里提供了一种链表节点的数据域为int型(用char型也可以,这样更省空间)的思路。这篇文章采用常用的转变为字符串进行处理的方法,下面说下我用字符串实现大数相加的思路: 假设输入了如下两个字符串(其中上面的红色部分表示数组的下标,下面的绿色和黄色部分表示各字符):
2014-05-12 10:07:14 4342 7
原创 【剑指offer】数值的整数次方
剑指offer上的第十一题,九度OJ上测试通过。题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。输入:输入可能包含多个测试样例。对于每个输入文件,第一行输入一个整数T,表示测试案例的数目,接下来的T行每行输入一个浮点数base和一个整数exponent,两个数中间用一个空格隔开。输出:对应每个测试案例,输出一个浮点数代表答案,保留两位小数即可。
2014-05-11 09:27:25 4898
原创 【剑指offer】二进制中1的个数
剑指offer上的第10题,在九度OJ上测试通过。 时间限制:1 秒内存限制:128 兆 题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。输入:输入可能包含多个测试样例。对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。。n保证是int范围内的一个整数。
2014-05-10 08:32:34 5189 3
字典树求公共前缀字符串数目
2014-03-13
九大内部排序算法打包下载
2014-03-05
优化冒泡排序和选择排序
2014-02-27
插入排序和希尔排序的多种实现方法
2014-02-27
模式匹配—BF算法和KMP算法
2014-02-19
赫夫曼树的构建及赫夫曼编码(C语言源代码,代码中含详细注释)
2014-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人