E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
lintCode
lintcode
阶梯训练第四关(九章)
7、二叉树的序列化和反序列化题目设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”。如何反序列化或序列化二叉树是没有限制的,你只需要确保可以将二叉树序列化为一个字符串,并且可以将字符串反序列化为原来的树结构。【需要再来一遍~】注意事项Thereisnolimitofhowyoudeserializeorserialize
Dashy_Liu
·
2017-03-13 17:16
Lintcode
-字符串匹配算法
问题描述对于一个给定的source字符串和一个target字符串,你应该在source字符串中找出target字符串出现的第一个位置(从0开始)。如果不存在,则返回-1。问题分析之前在考验复习数据结构的时候就被这道题困了好久,书本上介绍的是KMP算法(大家戏谑的说说“看毛片”Q^Q),这个算法可谓是考验智商,反正我看了N遍也没有看明白,最后只能死记,到最后打算遇到了就放弃好了。现在OJ的时候又看到
爱秋刀鱼的猫
·
2017-03-05 23:56
LintCode
-和大于S的最小子数组
给定一个由n个整数组成的数组和一个正整数s,请找出该数组中满足其和≥s的最小长度子数组。如果无解,则返回-1。您在真实的面试中是否遇到过这个题?Yes样例给定数组[2,3,1,2,4,3]和s=7,子数组[4,3]是该条件下的最小长度子数组。思路:数组的题一般思路大概是用两个指针扫描,这里是用一前一后两个指针都从左往右移,前面的指针一直移直到和大于s为止;后面的指针此时一直右移,直到距离最短为止。
dancheren
·
2017-02-26 21:18
LintCode
LintCode
最长上升子序列
题目给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。说明最长上升子序列的定义:最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。https://en.wikipedia.org/wiki/Longest_increasing_subsequence样例给出[5,4,1,2,3],LIS是[1,2,3],返回3给出
六尺帐篷
·
2017-02-26 13:20
Lintcode
-最长回文子串
问题描述:给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。image.png问题分析:中心扩展法如果是一个回文序列,那么以这个序列中心字符展开的前缀和后缀都是一样的,因此,我们可以枚举中心位置,然后再在这个位置上扩展。记录并且更新得到最长的回文长度。示例代码:classSolution{public:/***@paramsinputstrin
爱秋刀鱼的猫
·
2017-02-23 15:25
LintCode
交叉字符串
题目给出三个字符串:s1、s2、s3,判断s3是否由s1和s2交叉构成样例比如s1="aabcc"s2="dbbca"当s3="aadbbcbcac",返回true.当s3="aadbbbaccc",返回false.分析动态规划问题dp[i][j]:表示前i个和前j个是否构成显然当第s3的i+j个字符,就两种可能,一个等于s1,一个等于s2。代码publicclassSolution{/***De
六尺帐篷
·
2017-02-22 20:43
OJ
lintcode
三数之和
给出一个有n个整数的数组S,在S中找到三个整数a,b,c,找到所有使得a+b+c=0的三元组。注意事项在三元组(a,b,c),要求a>threeSum(vector&nums){//writeyourcodeherevector>res_vector;sort(nums.begin(),nums.end());intlen=nums.size();for(inti=0;ires;res.push_
zhaozhengcoder
·
2017-02-21 14:05
OJ
lintcode
两两交换链表中的节点
给一个链表,两两交换其中的节点,然后返回交换后的链表。您在真实的面试中是否遇到过这个题?Yes样例给出1->2->3->4,你应该返回的链表是2->1->4->3。/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode(intx):val(x),next(NULL){}*};*/clas
zhaozhengcoder
·
2017-02-21 14:15
OJ
lintcode
单例
单例是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于classMouse(不是动物的mouse哦),我们应将其设计为singleton模式。你的任务是设计一个getInstance方法,对于给定的类,每次调用getInstance时,都可得到同一个实例。样例在Java中:Aa=A.getInstance();Ab=A.ge
zhaozhengcoder
·
2017-02-21 14:04
OJ
lintcode
翻转字符串
给定一个字符串,逐个翻转字符串中的每个单词。您在真实的面试中是否遇到过这个题?Yes说明单词的构成:无空格字母构成一个单词输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个classSolution{public:/***@params:Astring*@return:Astring*/stringreverseW
zhaozhengcoder
·
2017-02-21 14:25
OJ
lintcode
删除链表中倒数第n个节点
给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。注意事项链表中的节点个数大于等于n您在真实的面试中是否遇到过这个题?Yes样例给出链表1->2->3->4->5->null和n=2.删除倒数第二个节点之后,这个链表将变成1->2->3->5->null./***DefinitionofListNode*classListNode{*public:*intval;*ListNode*nex
zhaozhengcoder
·
2017-02-21 14:17
OJ
lintcode
删除排序数组中的重复数字 II
跟进“删除重复数字”:如果可以允许出现两次重复将如何处理?classSolution{public:/***@paramA:alistofintegers*@return:returnaninteger*/intremoveDuplicates(vector&nums){//writeyourcodehereif(nums.size()==0){return0;}intk=0;intcounts=
zhaozhengcoder
·
2017-02-21 14:02
lintcode
111爬楼梯问题(动态规划easy)
题目:假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?解决代码:publicclassSolution{/***@paramn:Aninteger*@return:Aninteger*/publicintclimbStairs(intn){intlast=1,lastlast=1,now=0;if(n==0||n==1){return1;}e
呆呆侠
·
2017-02-20 17:20
lintcode
算法学习__动态规划
OJ
lintcode
数组剔除元素后的乘积
给定一个整数数组A。定义B[i]=A[0]*...*A[i-1]*A[i+1]*...*A[n-1],计算B的时候请不要使用除法。您在真实的面试中是否遇到过这个题?Yes样例给出A=[1,2,3],返回B为[6,3,2]classSolution{public:/***@paramA:GivenanintegersarrayA*@return:AlonglongarrayBandB[i]=A[0]
zhaozhengcoder
·
2017-02-19 20:46
OJ
lintcode
O(1)时间检测2的幂次
用O(1)时间检测整数n是否是2的幂次。注意事项O(1)时间复杂度您在真实的面试中是否遇到过这个题?Yes样例n=4,返回true;n=5,返回false.classSolution{public:/**@paramn:Aninteger*@return:Trueorfalse*/boolcheckPowerOf2(intn){//writeyourcodehereif(n<=0){returnf
zhaozhengcoder
·
2017-02-19 20:39
OJ
lintcode
最小子数组
给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。注意事项子数组最少包含一个数字您在真实的面试中是否遇到过这个题?Yes样例给出数组[1,-1,-2,1],返回-3classSolution{public:/***@paramnums:alistofintegers*@return:Aintegerdenotethesumofminimumsubarray*/intminSubArray
zhaozhengcoder
·
2017-02-19 20:16
OJ
lintcode
二叉树的最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。/***DefinitionofTreeNode:*classTreeNode{*public:*intval;*TreeNode*left,*right;*TreeNode(intval){*this->val=val;*this->left=this->right=NULL;*}*}*/classSolution{pub
zhaozhengcoder
·
2017-02-19 19:04
OJ
lintcode
在二叉查找树中插入节点
给定一棵二叉查找树和一个新的树节点,将节点插入到树中。你需要保证该树仍然是一棵二叉查找树。image.pngclassSolution{public:/***@paramroot:Therootofthebinarysearchtree.*@paramnode:insertthisnodeintothebinarysearchtree*@return:Therootofthenewbinaryse
zhaozhengcoder
·
2017-02-19 19:47
OJ
lintcode
把排序数组转换为高度最小的二叉搜索树
给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。image.png/***DefinitionofTreeNode:*classTreeNode{*public:*intval;*TreeNode*left,*right;*TreeNode(intval){*this->val=val;*this->left=this->right=NULL;*}*}*/classSolution
zhaozhengcoder
·
2017-02-19 09:18
OJ
Lintcode
二叉树的后序遍历
给出一棵二叉树,返回其节点值的后序遍历。image.png/***DefinitionofTreeNode:*classTreeNode{*public:*intval;*TreeNode*left,*right;*TreeNode(intval){*this->val=val;*this->left=this->right=NULL;*}*}*/classSolution{/***@paramr
zhaozhengcoder
·
2017-02-19 09:48
OJ
lintcode
二叉树的所有路径
给一棵二叉树,找出从根节点到叶子节点的所有路径。image.png/***DefinitionofTreeNode:*classTreeNode{*public:*intval;*TreeNode*left,*right;*TreeNode(intval){*this->val=val;*this->left=this->right=NULL;*}*}*/classSolution{public:
zhaozhengcoder
·
2017-02-19 09:34
LintCode
8 旋转字符串
题目:rotateString要求:给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)样例:对于字符串"abcdefg".offset=0=>"abcdefg"offset=1=>"gabcdef"offset=2=>"fgabcde"offset=3=>"efgabcd"算法要求:在数组上原地旋转,使用O(1)的额外空间解题思路:用直接定位法,来进行每个字符的定位。可以理解城对号入
DLNU-linglian
·
2017-02-16 15:21
LintCode
LintCode
29-交叉字符串
本人电子系,只为一学生。心喜计算机,小编以怡情。smallfish_love的博客这位大神写的很详细!!!建议看这位大神的说明!!!//我的代码publicbooleanisInterleave(Strings1,Strings2,Strings3){//writeyourcodehereints1len=s1.length();ints2len=s2.length();ints3len=s3.l
Jason__Liang
·
2017-02-15 20:25
LintCode
LintCode
- 旋转字符串(普通)
版权声明:本文为博主原创文章,未经博主允许不得转载。难度:容易要求:给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)样例对于字符串"abcdefg".offset=0=>"abcdefg"offset=1=>"gabcdef"offset=2=>"fgabcde"offset=3=>"efgabcd"思路:题目描述:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部
柒黍
·
2017-02-07 22:40
算法笔记:树和分治+复杂度分析2
参考两篇其他bolg总结的二叉树:https://github.com/xy7313/
lintcode
/blob/master/L3-BinaryTree/aboutTree.java1.树和分治法的关系分治法
暗黑破坏球嘿哈
·
2017-02-07 08:21
js刷林扣
lintcode
(2017年1月)
题目前的数字是对应的
lintcode
的题目序号14.二分查找给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target
mytac
·
2017-02-03 17:45
lintcode
阶梯训练第二关(九章)
一、OOXX14、二分查找题目给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。样例在数组[1,2,3,3,4,5,10]中二分查找3,返回2。代码classSolution{publicintbinarySearch(int[]nums,inttarget){if(nums
Dashy_Liu
·
2017-01-30 21:00
leetcode
LintCode
笔记(11)—— 带重复元素的子集
给定一个可能具有重复数字的列表,返回其所有可能的子集注意事项子集中的每个元素都是非降序的两个子集间的顺序是无关紧要的解集中不能包含重复子集您在真实的面试中是否遇到过这个题?Yes样例如果S=[1,2,2],一个可能的答案为:[[2],[1],[1,2,2],[2,2],[1,2],[]]与这道题相类似的题目同样也是求子集,不过限定集合中不包含重复的元素,但是这道题目不限定集合中是否有重复元素,因此
lhanchao
·
2017-01-20 10:50
LintCode
lintcode
k数和||
给定n个不同的正整数,整数k(1>kSumII(vectorA,intk,inttarget){//writeyourcodeherevector>res;vectortemp;sum(A,k,target,temp,res,0);returnres;}voidsum(vectorA,intk,inttarget,vector&temp,vector>&res,inti){if(k==0&&tar
yzawyx0220
·
2017-01-18 17:35
lintcode
k数和
给定n个不同的正整数,整数k(kA,intk,inttarget){//wirteyourcodeherevector>dp(k+1,vector(target+1,0));dp[0][0]=1;for(autonum:A){for(inti=k;i>=1;i--){for(intj=target;j>=num;j--){dp[i][j]+=dp[i-1][j-num];}}}returndp[k
yzawyx0220
·
2017-01-18 16:40
lintcode
最近公共祖先
给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。最近公共祖先是两个节点的公共的祖先节点且具有最大深度。样例对于下面这棵二叉树4/\37/\56LCA(3,5)=4LCA(5,6)=7LCA(6,7)=7题目链接:http://www.jianshu.com/writer#/notebooks/7169481/notes/8544182/preview从根节点开始寻找A和B,然后根据路径来判
yzawyx0220
·
2017-01-18 15:34
lintcode
删除二叉查找树的节点
样例给出如下二叉查找树:5/\36/\24删除节点3之后,你可以返回:5/\26\4或者:5/\46/2题目链接:http://www.
lintcode
.com/zh-cn/problem/remove-node-in-binary-search-tree
yzawyx0220
·
2017-01-17 17:08
lintcode
阶梯训练第一关(九章)
13、字符串查找题目对于一个给定的source字符串和一个target字符串,你应该在source字符串中找出target字符串出现的第一个位置(从0开始)。如果不存在,则返回-1。样例如果source=“source”和target=“target”,返回-1。如果source=“abcdabcdefg”和target=“bcd”,返回1。代码classSolution{publicintstr
Dashy_Liu
·
2017-01-17 00:20
leetcode
lintcode
在二叉查找树中插入节点
样例给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的:22/\/\14-->14//\336题目链接:http://www.
lintcode
.com/zh-cn/problem/insert-node-in-a-binary-search-tree
yzawyx0220
·
2017-01-16 16:37
lintcode
最长公共子串
样例给出A=“ABCD”,B=“CBCE”,返回2题目链接:http://www.
lintcode
.com/zh-cn/problem/longest-common-substring/最长公共子串和最长公共子序列不同地方在于子串必须连续的
yzawyx0220
·
2017-01-13 11:53
lintcode
最长公共前缀
求出他们的最长公共前缀(LCP)样例在"ABCD""ABEF"和"ACEF"中,LCP为"A"在"ABCDEFG","ABCEFG","ABCEFA"中,LCP为"ABC"题目链接:http://www.
lintcode
.com
yzawyx0220
·
2017-01-13 11:49
lintcode
最长公共子序列
给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。说明最长公共子序列的定义:最长公共子序列问题是在一组序列(通常2个)中找到最长公共子序列(注意:不同于子串,LCS不需要是连续的子串)。该问题是典型的计算机科学问题,是文件差异比较程序的基础,在生物信息学中也有所应用。https://en.wikipedia.org/wiki/Longest_common_subsequence_pr
yzawyx0220
·
2017-01-13 11:00
lintcode
最长上升子序列
给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。说明最长上升子序列的定义:最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。https://en.wikipedia.org/wiki/Longest_increasing_subsequence样例给出[5,4,1,2,3],LIS是[1,2,3],返回3给出[4
yzawyx0220
·
2017-01-11 16:03
LintCode
7-二叉树的序列化和反序列化
本人电子系,只为一学生。心喜计算机,小编以怡情。设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”。如何反序列化或序列化二叉树是没有限制的,你只需要确保可以将二叉树序列化为一个字符串,并且可以将字符串反序列化为原来的树结构。您在真实的面试中是否遇到过这个题?Yes样例给出一个测试数据样例,二叉树{3,9,20,#,#,1
Jason__Liang
·
2017-01-06 15:25
LintCode
[
LintCode
] Intersection of Two Linked Lists 求两个链表的交点
Writeaprogramtofindthenodeatwhichtheintersectionoftwosinglylinkedlistsbegins.NoticeIfthetwolinkedlistshavenointersectionatall,returnnull.Thelinkedlistsmustretaintheiroriginalstructureafterthefunction
Grandyang
·
2017-01-04 11:00
[
LintCode
] Merge Two Sorted Lists 混合插入有序链表
Mergetwosorted(ascending)linkedlistsandreturnitasanewsortedlist.Thenewsortedlistshouldbemadebysplicingtogetherthenodesofthetwolistsandsortedinascendingorder.Haveyoumetthisquestioninarealinterview? Ye
Grandyang
·
2017-01-03 06:00
LintCode
98-链表排序
本人电子系,只为一学生。心喜计算机,小编以怡情。在O(nlogn)时间复杂度和常数级的空间复杂度下给链表排序。样例给出1->3->2->null,给它排序变成1->2->3->null.感悟:要求O(nlogn)时间复杂度,然后我上网查了一下别的博主的博客的前言,发现只能用并归排序来做,我又查了一下并归排序,然后写出了之后的又臭又长的代码。不过用链表来做排序,那真是超级酸爽。。。思路:我是以1,2
Jason__Liang
·
2017-01-02 16:41
[
LintCode
] Best Time to Buy and Sell Stock II 买股票的最佳时间之二
Sayyouhaveanarrayforwhichthe ith elementisthepriceofagivenstockonday i.Designanalgorithmtofindthemaximumprofit.Youmaycompleteasmanytransactionsasyoulike(ie,buyoneandselloneshareofthestockmultipletime
Grandyang
·
2017-01-01 03:00
[
LintCode
] Maximum Subarray 最大子数组
Givenanarrayofintegers,findacontiguoussubarraywhichhasthelargestsum. NoticeThesubarrayshouldcontainatleastonenumber.Haveyoumetthisquestioninarealinterview? YesExampleGiventhearray [−2,2,−3,4,−1,2,1,−
Grandyang
·
2016-12-31 08:00
LintCode
116-跳跃游戏
本人电子系,只为一学生。心喜计算机,小编以怡情。给出一个非负整数数组,你最初定位在数组的第一个位置。数组中的每个元素代表你在那个位置可以跳跃的最大长度。判断你是否能到达数组的最后一个位置。注意事项这个问题有两个方法,一个是贪心和动态规划。贪心方法时间复杂度为O(N)。动态规划方法的时间复杂度为为O(n^2)。我们手动设置小型数据集,使大家阔以通过测试的两种方式。这仅仅是为了让大家学会如何使用动态规
Jason__Liang
·
2016-12-30 09:56
LintCode
LintCode
184-最大数
本人电子系,只为一学生。心喜计算机,小编以怡情。给出一组非负整数,重新排列他们的顺序把他们组成一个最大的整数。注意事项最后的结果可能很大,所以我们返回一个字符串来代替这个整数。样例:给出[1,20,23,4,8],返回组合最大的整数应为8423201。感悟:这是一道非常好的题,虽然看起来很简单,但是做起来真的很锻炼编程能力(很受打击,因为我总共花了一整天的时间才做出来了)思路:1、选择一种排序手法
Jason__Liang
·
2016-12-29 18:57
LintCode
lintcode
数组剔除元素后的乘积
给定一个整数数组A。定义B[i]=A[0]*...*A[i-1]*A[i+1]*...*A[n-1],计算B的时候请不要使用除法。样例给出A=[1,2,3],返回B为[6,3,2]。B[i]等于A[i]左边的数的乘积乘以A[i]右边的数的乘积,只需要知道这个这道题就非常简单了。classSolution{public:/***@paramA:GivenanintegersarrayA*@retur
yzawyx0220
·
2016-12-29 11:04
lintcode
字符大小写排列
给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。样例给出"abAcD",一个可能的答案为"acbAD"。比较简单的题,设置两个指针,一个在字符串的开头,一个在末尾,使最开始的字符和'a‘比较,小于’a'即为大写字母,和后面的第j个位置交换,接着比较,以此类推,有点像快速排序。classSolution{public:/***@paramchars:Thelettersarray
yzawyx0220
·
2016-12-29 10:47
lintcode
最大子数组||
给定一个整数数组,找出两个不重叠子数组使得它们的和最大。每个子数组的数字在数组中的位置应该是连续的。返回最大的和。给出数组[1,3,-1,2,-1,2]这两个子数组分别为[1,3]和[2,-1,2]或者[1,3,-1,2]和[2],它们的最大和都是7这道题和上一道题差不多,上一题是找到给定数组的最大子数组。对于这道题,只需要把给定的数组分为两部分,找到左半部分和右半部分的最大子数组的和的最大值即可
yzawyx0220
·
2016-12-28 09:02
lintcode
用栈实现队列
正如标题所述,你需要使用两个栈来实现队列的一些操作。队列应支持push(element),pop()和top(),其中pop是弹出队列中的第一个(最前面的)元素。pop和top方法都应该返回第一个元素的值。样例比如push(1),pop(),push(2),push(3),top(),pop(),你应该返回1,2和2设置两个栈,stack1和stack2,push操作不用说直接push就可以。对于
yzawyx0220
·
2016-12-26 11:03
上一页
65
66
67
68
69
70
71
72
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他