随笔分类 -  数据结构与算法Data Structure and Algorithm

摘要:题目:说起麻将,那可是川渝市民的最爱,无论亲朋好友聚会,还是业务谈判,总是少不了麻将的声音。成都麻将只能包括3种类型:条,筒,万。没有“门、东南西北、红中”。每种牌都是数字从1到9,每个数字有4张,共36张。筒,万,条均一样。胡牌简化规则如下:1.必须有一个对子,即两张相同的牌,比如:两个2筒,两个... 阅读全文
posted @ 2015-10-18 17:03 AndyJee 阅读(4243) 评论(0) 推荐(0)
摘要:题目:Jefflovesplayinggames,Gluttonoussnake(anoldgameinNOKIAera)isoneofhisfavourites.However,afterplayinggluttonoussnakesomanytimes,hefinallygotboredwith... 阅读全文
posted @ 2015-10-17 10:31 AndyJee 阅读(1942) 评论(0) 推荐(0)
摘要:题目:ApsIslandhasmanycities.Inthesummer,manytravellerswillcometotheislandandattendfestiveeventsindifferentcities.ThefestiveeventsinApsIslandarecrazy.Onc... 阅读全文
posted @ 2015-10-17 10:23 AndyJee 阅读(1063) 评论(0) 推荐(0)
摘要:题目:从一个字符串中找到一个连续子串,该子串中任何两个字符不能相同,求子串的最大长度并输出一条最长不重复子串。思路:利用hash表hashTable[256]来保存出现过的字符,然后从头开始遍历字符串,1、如果当前字符ch已经出现过(hashTable[ch]==1),则表示一个局部最长不重复子串已... 阅读全文
posted @ 2015-10-13 18:45 AndyJee 阅读(13741) 评论(0) 推荐(0)
摘要:题目:编写一个函数,输入为一个矩阵,打印这个矩阵转置后的结果。例:输入矩阵是1,2,3,45,6,7,89,10,11,1213,14,15,16打印结果应该是13,9,5,114,10,6,215,11,7,316,12,8,4思路:1、从外到内,一圈一圈地循环替换;2、对矩阵进行从[i,j]到[... 阅读全文
posted @ 2015-10-09 21:21 AndyJee 阅读(1405) 评论(0) 推荐(0)
摘要:题目:输入字符串中对称的子字符串的最大长度。比如输入字符串“roorle”,由于该字符串里最长的对称子字符串是“roor”,因此输出4.思路:1、求字符串”roorle“和反序”elroor“的最长公共子串2、最长回文子串代码:1、最长公共子串#includeusing namespace std;... 阅读全文
posted @ 2015-10-09 20:21 AndyJee 阅读(1743) 评论(0) 推荐(0)
摘要:题目:给定一个正整数n,求1/n的小数表示,如:1/2=0.51/3=0.(3)1/6=0.1(6)1/7=0.(142857)其中括号表示小数中的循环部分。思路:考虑一下除法运算的过程:当余数与之前运算出现重复时,那么说明循环已经开始,因此可以通过hash表来记录余数对应的位置。被除数 除数 ... 阅读全文
posted @ 2015-10-09 19:30 AndyJee 阅读(498) 评论(0) 推荐(0)
摘要:题目:给定正整数N,要求对1~N的所有数按照字典序来排列,如:1-10:1 10 2 3 4 5 6 7 8 91-100:1 10 100 11 12 13 14 15 16 17 18 19 2 20 21 ......思路:1、字符串排序将1~N所有数字转为字符串,存进vector中,对vec... 阅读全文
posted @ 2015-10-09 17:12 AndyJee 阅读(892) 评论(0) 推荐(0)
摘要:题目:给定三个字符串A, B, C,判断C是否由A和B交错构成。交错构成的意思是,对于字符串C,可以将其每个字符标记为A类或B类,使得我A类的每个字符顺序构成了A字符串,B类的每个字符顺序构成了B字符串。如:对于A=”rabbit” B=”mq”, ”rabmbitq”是由A和B交错构成的,但”ra... 阅读全文
posted @ 2015-09-30 16:17 AndyJee 阅读(1922) 评论(0) 推荐(0)
摘要:题目:给定一个只包含正整数的数组,给出一个方法,将数组中的数拼接起来,使得拼接后的数最大。例如,[1, 32, 212]拼接之后,所得到的最大数为322121。思路:比较方法:两个数先后顺序的确定,如a,b,如果ab>ba(转换为字符串,通过字典序排序),则a在b的前面;通过上面的比较方法,就可以对... 阅读全文
posted @ 2015-09-30 11:13 AndyJee 阅读(774) 评论(0) 推荐(0)
摘要:题目:1、有一个100层高的大厦,你手中有两个相同的玻璃围棋子。从这个大厦的某一层及更高的层扔下围棋子就会碎,用你手中的这两个玻璃围棋子,找出一个最优的策略(扔最少的次数),来得知那个临界层面。2、如果大厦高度是N层,你有K个棋子,请问最少需要扔几次可以知道得临界层?思路:1、推导这里不推倒,直接给... 阅读全文
posted @ 2015-09-29 16:00 AndyJee 阅读(889) 评论(0) 推荐(0)
摘要:题目:和为零的最大连续子数组思路:我首先想到的是前缀数组和,遍历一遍数组,计算出sum[i](表示从0-i的子数组之和)。有了前缀数组和,只要sum[i]=sum[j](i#include#includeusing namespace std;// O(n^2)int longestSubArray... 阅读全文
posted @ 2015-09-26 10:58 AndyJee 阅读(1126) 评论(0) 推荐(0)
摘要:题目:1、有两个数组A和B,每个数组有k个数,从两个数组中各取一个数加起来可以组成k*k个和,求这些和中的前k大。2、有N个数组,每个数组有k个数,从N个数组中各取一个数加起来可以组成k^N个和,求这些和中的前k大。思路:1、将A和B两个数组,按照从大到小排序,那么很容易得到下面的求和矩阵,假设为C... 阅读全文
posted @ 2015-09-25 18:53 AndyJee 阅读(1435) 评论(0) 推荐(0)
摘要:题目:有两个数组A和B,假设A和B已经有序(从大到小),求A和B数组中所有数的第K大。思路:1、如果k为2的次幂,且A,B 的大小都大于k,那么考虑A的前k/2个数和B的前k/2个数,如果A[k/2]B[mid]:如果m/2+n/2大于k,则表明k存在于A和B的前一半中;否则,只需在B的n/2之后的... 阅读全文
posted @ 2015-09-23 21:28 AndyJee 阅读(5042) 评论(0) 推荐(0)
摘要:题目:假设有个有序数组在某个位置旋转,得到新的数组,即为旋转有序数组。如:(i.e.,0 1 2 4 5 6 7might become4 5 6 7 0 1 2).现给定一个这样的数组,在数组中查找某个数。如果找到,返回下标,否则返回-1;思路:思路1:考虑一个旋转有序数组的特点:前面部分是递增的... 阅读全文
posted @ 2015-09-22 13:04 AndyJee 阅读(1499) 评论(0) 推荐(0)
摘要:题目:给定一数组,判断它是否为二叉查找树的后序遍历数组思路:想想,二叉查找数树的特点,任意根结点大于左子树的所有值,而小于右子树的所有值;再想想,后序遍历的特点,先遍历左子树,再遍历右子树,最后是根结点;因此很容易找到根结点,然后遍历数组找出左子树(从左往右比根结点小的),剩下右边的就是右子树,然后... 阅读全文
posted @ 2015-09-21 22:38 AndyJee 阅读(390) 评论(0) 推荐(0)
摘要:题目:假设有如下操作,偶数则除以2,奇数可以加1或减1,那么问给定某个数,让它变成1需要的最少操作是多少步?思路:1、动态规划:递推方程:if n&1==1 dp[n]=min(dp[n-1]+1,dp[(n+1)/2]+1)if n&1==0 dp[n]=dp[n/2]+1初始状态:dp[1]=1... 阅读全文
posted @ 2015-09-21 22:15 AndyJee 阅读(983) 评论(0) 推荐(0)
摘要:题目:给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。如果目标值不在数组中,则返回[-1, -1]思路:1、直接遍历数组,复杂度O(n)2、二分查找先通过二分查找,找到target出现的最左边的位置,如果不存在,返回-1;再通过二分查找,找到target出现的最右... 阅读全文
posted @ 2015-09-21 22:04 AndyJee 阅读(1832) 评论(0) 推荐(0)
摘要:题目:Given n * m non-negative integers representing an elevation map 2d where the area of each cell is 1 * 1, compute how much water it is able to trap ... 阅读全文
posted @ 2015-09-19 16:02 AndyJee 阅读(1142) 评论(0) 推荐(0)
摘要:题目:Givennnon-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining... 阅读全文
posted @ 2015-09-19 15:43 AndyJee 阅读(526) 评论(0) 推荐(0)