自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 【两次过】【2018唯品会】字符串组合

输入一个字符串,输出该字符串中相邻字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、bc、abc。(注意:输出的组合需要去重)(40分)输入描述:一个字符串输出描述:一行,每个组合以空格分隔,相同长度的组合需要以字典序排序,且去重。示例1输入bac输出a b c ac ba bac解题思路1:类似Lintcode 17. 子...

2019-05-30 21:10:35 146

原创 【两次过】【二分搜索】【2018爱奇艺】最后一位

题目描述牛牛选择了一个正整数X,然后把它写在黑板上。然后每一天他会擦掉当前数字的最后一位,直到他擦掉所有数位。 在整个过程中,牛牛会把所有在黑板上出现过的数字记录下来,然后求出他们的总和sum.例如X = 509, 在黑板上出现过的数字依次是509, 50, 5, 他们的和就是564.牛牛现在给出一个sum,牛牛想让你求出一个正整数X经过上述过程的结果是sum.输入描述:输入包括...

2019-05-22 09:24:37 213

原创 堆排序

直接在原数组上进行排序,时间复杂度O(nlogn),空间复杂度O(1)前置知识:由于直接从数组排序,所以序号从0开始,可以得到parent(i) = (i-1)/2left child(i) = 2*i+1right child(i) = 2*i+2解题分为两个步骤:(1)先将原数组进行heapify,变成一个最大堆。也就是从第一个非叶子节点(即最后节点的父节点)开始向上遍...

2019-05-21 21:37:59 147

原创 【两次过】【2018爱奇艺】幸运子序列

题目描述牛牛得到一个长度为n的整数序列V,牛牛定义一段连续子序列的幸运值为这段子序列中最大值和次大值的异或值(次大值是严格的次大)。牛牛现在需要求出序列V的所有连续子序列中幸运值最大是多少。请你帮帮牛牛吧。输入描述:第一行一个整数n,即序列的长度。(2<= n <= 100000)第二行n个数,依次表示这个序列每个数值V[i], (1 ≤ V[i] ≤ 10^8)且保证...

2019-05-21 09:33:50 325

原创 【一次过】【2018爱奇艺】缺失的括号

题目描述一个完整的括号字符串定义规则如下:1、空字符串是完整的。2、如果s是完整的字符串,那么(s)也是完整的。3、如果s和t是完整的字符串,将它们连接起来形成的st也是完整的。例如,"(()())", ""和"(())()"是完整的括号字符串,"())(", "()(" 和 ")"是不完整的括号字符串。牛牛有一个括号字符串s,现在需要在其中任意位置尽量少地添加括号,将其转化为一个完...

2019-05-21 09:19:22 218

原创 【两次过】【2018爱奇艺】青草游戏

题目描述牛牛和羊羊都很喜欢青草。今天他们决定玩青草游戏。最初有一个装有n份青草的箱子,牛牛和羊羊依次进行,牛牛先开始。在每个回合中,每个玩家必须吃一些箱子中的青草,所吃的青草份数必须是4的x次幂,比如1,4,16,64等等。不能在箱子中吃到有效份数青草的玩家落败。假定牛牛和羊羊都是按照最佳方法进行游戏,请输出胜利者的名字。输入描述:输入包括t+1行。第一行包括一个整数t(1 ≤ ...

2019-05-20 10:34:42 179

原创 【两次过】【2018爱奇艺】红和绿

题目描述牛牛有一些排成一行的正方形。每个正方形已经被染成红色或者绿色。牛牛现在可以选择任意一个正方形然后用这两种颜色的任意一种进行染色,这个正方形的颜色将会被覆盖。牛牛的目标是在完成染色之后,每个红色R都比每个绿色G距离最左侧近。牛牛想知道他最少需要涂染几个正方形。如样例所示: s = RGRGR我们涂染之后变成RRRGG满足要求了,涂染的个数为2,没有比这个更好的涂染方案。输入描述:...

2019-05-20 09:27:42 188

原创 【一次过】【2018爱奇艺】回文素数

题目描述如果一个整数只能被1和自己整除,就称这个数是素数。如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666如果一个数字既是素数也是回文数,就称这个数是回文素数牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。输入描述:输入包括一行,一行中有两个整数(1 ≤ L ≤ R ≤ 1000)输出描述:输出一个整...

2019-05-17 09:35:05 217

原创 【三次过】【2018爱奇艺】DNA序列

题目描述牛牛又从生物科研工作者那里获得一个任务,这次牛牛需要帮助科研工作者从DNA序列s中找出最短没有出现在DNA序列s中的DNA片段的长度。例如:s = AGGTCTA序列中包含了所有长度为1的('A','C','G','T')片段,但是长度为2的没有全部包含,例如序列中不包含"AA",所以输出2。输入描述:输入包括一个字符串s,字符串长度length(1 ≤ length ≤...

2019-05-16 10:39:00 271

原创 【一次过】【2018爱奇艺】循环数比较

题目描述对于任意两个正整数x和k,我们定义repeat(x, k)为将x重复写k次形成的数,例如repeat(1234, 3) = 123412341234,repeat(20,2) = 2020.牛牛现在给出4个整数x1, k1, x2, k2, 其中v1 = (x1, k1), v2 = (x2, k2),请你来比较v1和v2的大小。输入描述:输入包括一行,一行中有4个正整数x...

2019-05-16 10:02:40 175

原创 【三次过】【2018招行】寻找合法字符串

给出一个正整数n,请给出所有的包含n个'('和n个')'的字符串,使得'('和')'可以完全匹配。例如:'(())()','()()()' 都是合法的;'())()('是不合法的。请按照__字典序__给出所有合法的字符串。输入描述:输入为1个正整数输出描述:输出为所有合法的字符串,用英文逗号隔开示例1输入2输出(()),()()解...

2019-05-16 09:42:17 510

原创 【两次过】【2018招行】字符串是否由子串拼接

给出一个非空的字符串,判断这个字符串是否是由它的一个子串进行多次首尾拼接构成的。例如,"abcabcabc"满足条件,因为它是由"abc"首尾拼接而成的,而"abcab"则不满足条件。输入描述:非空字符串输出描述:如果字符串满足上述条件,则输出最长的满足条件的的子串;如果不满足条件,则输出false。示例1输入abcabc输出abc解题思路:...

2019-05-15 21:08:01 263

原创 【三次过】【2018网易】疯狂队列

题目描述小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列。有一次,n个学生在列队的时候,小易老师正好去卫生间了。学生们终于有机会反击了,于是学生们决定来一次疯狂的队列,他们定义一个队列的疯狂值为每对相邻排列学生身高差的绝对值总和。由于按照身高顺序排列的队列的疯狂值是最小的,他们当然决定按照疯狂值最大的顺序来进行列队。现在给出n个学生的身高,请...

2019-05-15 20:18:41 239

原创 【两次过】操作序列

题目描述小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作:1、将a_i放入b序列的末尾2、逆置b序列小易需要你计算输出操作n次之后的b序列。输入描述:输入包括两行,第一行包括一个整数n(2 ≤ n ≤ 2*10^5),即序列的长度。第二行包括n个整数a_i(1 ≤ a_i ≤ 10^9),即序列a中的每个整数,以空格分割。输出...

2019-05-15 10:00:43 311

原创 【一次过】交错01串

题目描述如果一个01串任意两个相邻位置的字符都是不一样的,我们就叫这个01串为交错01串。例如: "1","10101","0101010"都是交错01串。小易现在有一个01串s,小易想找出一个最长的连续子串,并且这个子串是一个交错01串。小易需要你帮帮忙求出最长的这样的子串的长度是多少。输入描述:输入包括字符串s,s的长度length(1 ≤ length ≤ 50),字符串中只...

2019-05-15 09:37:18 214

原创 【两次过】【2018网易】彩色的砖块

题目描述小易有一些彩色的砖块。每种颜色由一个大写字母表示。各个颜色砖块看起来都完全一样。现在有一个给定的字符串s,s中每个字符代表小易的某个砖块的颜色。小易想把他所有的砖块排成一行。如果最多存在一对不同颜色的相邻砖块,那么这行砖块就很漂亮的。请你帮助小易计算有多少种方式将他所有砖块排成漂亮的一行。(如果两种方式所对应的砖块颜色序列是相同的,那么认为这两种方式是一样的。)例如: s = "AB...

2019-05-14 09:17:11 156

原创 【一次过】【2018网易】字符串碎片

一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,"aaabbaaac"是由下面碎片组成的:'aaa','bb','c'。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的平均长度是多少。输入描述:输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s只含小写字母('a'-'z')输出描述:输出一个整数,表示所有碎片...

2019-05-13 19:54:33 173

原创 【两次过】机器人的运动范围

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?解题思路:从(0,0)点开始dfs,...

2019-05-13 10:50:53 84

原创 【两次过】数据流中的中位数

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。解题思路:如果直接采用数组存储,然后排序获得中位数,时间复杂度为O(n)。最理想的状况是采用红黑树...

2019-05-13 09:51:56 104

原创 【三次过】691. 恢复二叉搜索树

在一棵二叉搜索树中, 只有两个节点是被交换的. 找到这些节点并交换, 如果没有节点被交换就返回原来的树的根节点.样例样例1输入: {4,5,2,1,3}输出: {4,2,5,1,3}解释:给出的二叉搜索树: 4 / \ 5 2 / \1 3返回: 4 / \ 2 5 / \1 3样例2输入: {1,2,5...

2019-05-12 11:20:29 135

原创 【两次过】Lintcode 701. 修剪二叉搜索树

给定一个有根的二分搜索树和两个数字min和max,修整这个树使得所有的数字在这个新的树种都是在min和max之间(包括min和max)。然后这个所得的树仍然是合法的二分搜索树。举个例子,输入是:然后我们给定min为5和max为13,这样得到的二分搜索树的结果应该是:样例样例1输入:{8,3,10,1,6,#,14,#,#,4,7,13}513输出: {8, 6, 10, #...

2019-05-12 10:26:22 161

原创 【两次过】二叉树的下一个结点

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。解题思路:分析二叉树的下一个节点,一共有以下情况:1.二叉树为空,则返回空;2.若节点右孩子存在,则设置一个指针从该节点的右孩子出发,一直沿着指向左子结点的指针找到的叶子节点即为下一个节点;3.若节点右孩子不存在:查看该节点是否是其父节...

2019-05-11 09:39:56 115

原创 【两次过】【2018网易】魔法币

小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币。魔法机器1:如果投入x个魔法币,魔法机器会将其变为2x+1个魔法币魔法机器2:如果投入x个魔法币,魔法机器会将其变为2x+2个魔法币小易采购魔法神器总共需要n个魔法币,所以小易只能通过两台魔法机器产生恰好n个魔法币,小易需要你帮...

2019-05-09 21:11:58 96

原创 【两次过】构建乘积数组

题目描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。解题思路:B[i]的值可以看作下图的矩阵中每行的乘积。下三角用连乘可以很容求得,上三角,从下向上也是连乘。因此我们的思路就很清晰了,先算下三角中的连乘,即我们先算出B[i...

2019-05-09 19:59:59 101

原创 【一次过】把字符串转换成整数

题目描述将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0示例1输入+2147483647...

2019-05-08 09:37:58 236

原创 【两次过】圆圈中最后剩下的数

题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去.....

2019-05-08 09:12:57 89

原创 【一次过】扑克牌顺子

题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K...

2019-05-07 09:53:02 227

原创 【一次过】左旋转字符串

题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!解题思路:三次旋转。先旋转需要左移的字符串,然后旋转其他字符串,最后将两旋转后的字符串拼接...

2019-05-07 08:58:24 145

原创 【三次过】【2018网易】【二分查找】牛牛找工作

为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含两个正整数,分别表示工作的数量N(N<...

2019-05-06 21:49:43 138

原创 【一次过】【双指针】和为S的两个数字

题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。解题思路:双指针。一前一后,向中间靠拢数列满足递增,设两个头尾两个指针i和j,若ai + aj == sum,就是答案(相差越远乘积越小)若ai + aj > sum,aj...

2019-05-06 10:18:30 107

原创 【两次过】【双指针】和为S的连续正数序列

题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数...

2019-05-06 09:55:14 123

原创 【两次过】数组中只出现一次的数字

题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。解题思路:可以用位运算实现,如果将所有所有数字相异或,则最后的结果肯定是那两个只出现一次的数字异或的结果,所以根据异或的结果1所在的最低位,把数字分成两半,每一半里都还有只出现一次的数据和成对出现的数据,这样继续对每一半相异或则可以分别求出两个只出现一次的数字//num1,num2...

2019-05-06 09:25:39 138

原创 【两次过】【二分搜索】数字在排序数组中出现的次数

题目描述统计一个数字在排序数组中出现的次数。解题思路:先通过二分查找找到该数字第一次出现的位置,再通过二分查找找到该数字最后一次出现的位置,最后返回两结果的差值即可。注意二分搜索左值和右值在边界处理上不同,特别是搜索右边界时,必须是while(l+1 < r),否则就会陷入死循环,原因是mid的值由于取(l+r)/2整数,永远偏向左方,所以搜索到最后总会l与mid重合,r在另...

2019-05-05 10:13:38 189

原创 【两次过】【归并排序】数组中的逆序对

题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%1...

2019-05-05 09:20:00 144

原创 【难】mysql练习题2

题目:有3个表S(学生表),C(课程表),SC(学生选课表)S(SNO,SNAME)代表(学号,姓名) C(CNO,CNAME,CTEACHER)代表(课号,课名,教师)SC(SNO,CNO,SCGRADE)代表(学号,课号,成绩)请先建立这三张表,然后回答问题:1,找出没选过“黎明”老师的所有学生姓名。2,列出2门以上(含2门)不及格学生姓名及平均成绩。3,既学过1号课程又学...

2019-05-04 22:19:40 1612 2

原创 【两次过】【Comparator】把数组排成最小的数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。解题思路:先将整型数组转换成String数组,然后将String数组排序,最后将排好序的字符串数组拼接出来。关键就是制定排序规则。排序规则如下:若ab > ba 则 a > b,若a...

2019-05-04 09:11:31 105

原创 mysql练习题合集

表结构:1、部门表:部门编号,部门名称,位置create table dept( deptno int(10) primary key, dname varchar(14), loc varchar(13));2、薪资表:薪资等级、当前等级的最低薪资、当前等级的最高薪资create table salgrade( grade int(11), losal ...

2019-05-03 20:32:29 323

原创 【一次过】整数中1出现的次数

题目描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。解题思路1:常规解法,依次遍历查看分解每个数字。public...

2019-05-03 10:44:38 160

原创 【一次过】二叉搜索树与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。解题思路:与Lintcode 378. 将二叉查找树转换成双链表类似,不同的是这个不需要新建节点。/**public class TreeNode { int val = 0; TreeNode left = null; TreeNo...

2019-05-03 09:37:03 168

原创 【两次过】Lintcode 232. 短网址

给出一个长网址,返回一个短网址。你需要实现两个方法:longToShort(url)把一个长网址转换成一个以http://tiny.url/开头的短网址 shortToLong(url)把一个短网址转换成一个长网址你可以任意设计算法,评测只关心两件事:短网址的key的长度应该等于6 (不算域名和反斜杠)。 可以使用的字符只有[a-zA-Z0-9]. 比如:abcD9E 任...

2019-05-01 18:42:55 238

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除