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-
硬币排成一条线
有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走1或2个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。请判定 第一个玩家 是输还是赢?样例n= 1,返回 true.n= 2,返回 true.n= 3,返回 false.n= 4,返回 true.n= 5,返回 true.动态规划:classSolution{ public: /** *@paramn:aninteger *@return:
ljlstart
·
2015-09-03 16:00
lintcode-
颠倒整数
将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回0(标记为32位整数)classSolution{ public: /** *@paramntheintegertobereversed *@returnthereversedinteger */ intreverseInteger(intn){ //Writeyourcodehere if(n==0) return0; boolflg=
ljlstart
·
2015-09-02 22:00
lintcode-
子树
有两个不同大小的二进制树:T1有上百万的节点;T2有好几百的节点。请设计一种算法,判定T2是否为T1的子树。注意 若T1中存在从节点n开始的子树与T2相同,我们称T2是T1的子树。也就是说,如果在T1节点n处将树砍断,砍断的部分将与T2完全相同。/** *DefinitionofTreeNode: *classTreeNode{ *public: *intval; *
ljlstart
·
2015-09-02 22:00
lintcode-
有效回文字符串
给定一个字符串,判断其是否为一个回文串。只包含字母和数字,忽略大小写例如"Aman,aplan,acanal:Panama"是一个回文。 "raceacar"不是一个回文。classSolution{ public: boolcheck(charch){ if((ch>='a'&&ch='A'&&ch='0'&&ch=0&&check(s[end])){ --end; } while(be
ljlstart
·
2015-09-02 21:00
lintcode-
背包问题-92
classSolution{ public: intbackPack(intm,vectorA){ boolf[A.size()+1][m+1]; intsize=A.size(); for(inti=0;i=A[i-1]&&f[i-1][j-A[i-1]]){//保证j-A[i]不是负数 f[i][j]=true; } } } for(inti=m;i>=0;--i){//maxsize
ljlstart
·
2015-09-02 19:00
lintcode-
罗马数字转整数-419
classSolution{ public: intromanToInt(string&s){ if(s.size()==0) return0; mapcnt; mapcheck; check['I']=true; check['X']=true; check['C']=true; intsum=0; intsize=s.size(); cnt['I']=1;; cnt['X']=10; cn
ljlstart
·
2015-09-02 19:00
LintCode-
数组划分
给出一个整数数组nums和一个整数k。划分数组(即移动数组nums中的元素),使得:所有小于k的元素移到左边所有大于等于k的元素移到右边返回数组划分的位置,即数组中第一个位置i,满足nums[i]大于等于k。您在真实的面试中是否遇到过这个题? Yes样例给出数组nums=[3,2,2,1]和k=2,返回1注意你应该真正的划分数组nums,而不仅仅只是计算比k小的整数数,如果数组nums中的所有元素
wangyuquanliuli
·
2015-08-19 11:00
面试
lintcode
LintCode-
交叉字符串
给出三个字符串:s1、s2、s3,判断s3是否由s1和s2交叉构成。您在真实的面试中是否遇到过这个题? Yes样例比如s1= "aabcc" s2= "dbbca" -当s3= "aadbbcbcac",返回 true. -当s3= "aadbbbaccc",返回false.挑战要求时间复杂度为O(n^2)或者更好标签 Expand 相关题目 Expand 分析:两个字符串的问题,大部分都可
wangyuquanliuli
·
2015-08-19 11:00
面试
lintcode
LintCode-
第k大元素
在数组中找到第k大的元素您在真实的面试中是否遇到过这个题? Yes样例给出数组[9,3,2,4,8],第三大的元素是4给出数组 [1,2,3,4,5],第一大的元素是5,第二大的元素是4,第三大的元素是3,以此类推注意你可以交换数组中的元素的位置挑战要求时间复杂度为O(n),空间复杂度为O(1)标签 Expand 相关题目 Expand 分析:利用快排的思想,不断partition,代码:cla
wangyuquanliuli
·
2015-08-18 20:00
面试
lintcode
LintCode-
丑数
设计一个算法,找出只含素因子3,5,7 的第 k 大的数。符合条件的数如:3,5,7,9,15......您在真实的面试中是否遇到过这个题? Yes样例如果k=4,返回 9挑战要求时间复杂度为O(nlogn)或者O(n)标签 Expand 相关题目 Expand 分析:分别设三个指针,表明乘以3,5,7会大于当前丑数的index代码:classSolution{ public: /* *@par
wangyuquanliuli
·
2015-08-18 17:00
面试
lintcode
LintCode-
买卖股票的最佳时机
假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。您在真实的面试中是否遇到过这个题? Yes样例给出一个数组样例 [3,2,3,1,2],返回1 标签 Expand 相关题目 Expand 分析:对于每一天来说,它能得到的最大利益就是它和之前最低点的差代码:classSolution{ public: /
wangyuquanliuli
·
2015-08-13 21:00
面试
lintcode
LintCode-
加油站
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前往第_i_+1个加油站需要消耗汽油cost[i]。你有一辆油箱容量无限大的汽车,现在要从某一个加油站出发绕环路一周,一开始油箱为空。求可环绕环路一周时出发的加油站的编号,若不存在环绕一周的方案,则返回-1。您在真实的面试中是否遇到过这个题? Yes样例现在有4个加油站,汽油量gas[i]=[1,1,3,1
wangyuquanliuli
·
2015-08-13 19:00
面试
lintcode
LintCode-
赋值运算符重载
实现赋值运算符重载函数,确保:新的数据可准确地被复制旧的数据可准确地删除/释放可进行 A=B=C 赋值您在真实的面试中是否遇到过这个题? Yes样例如果进行 A=B 赋值,则A中的数据被删除,取而代之的是B中的数据。如果进行 A=B=C 赋值,则A和B都复制了C中的数据。挑战充分考虑安全问题,并注意释放旧数据。说明本题只适用于C++,因为 Java 和 Python 没有对赋值运算符的重载机制。标
wangyuquanliuli
·
2015-08-12 21:00
面试
lintcode
LintCode-
两个整数相除
将两个整数相除,要求不使用乘法、除法和mod运算符。如果溢出,返回 2147483647 。您在真实的面试中是否遇到过这个题? Yes样例给定被除数= 100 ,除数= 9,返回 11。标签 Expand 相关题目 Expand 分析:既然不能乘法和除法,那肯定就只能位操作了,然后如果用减法的话,太慢了,必须想点二进制的方法来加速,另外注意越界问题代码:classSolution{ public
wangyuquanliuli
·
2015-08-12 21:00
面试
lintcode
LintCode-
最长回文子串
给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。您在真实的面试中是否遇到过这个题? Yes样例给出字符串 "abcdzdcab",它的最长回文子串为 "cdzdc"。挑战O(n2)时间复杂度的算法是可以接受的,如果你能用O(n)的算法那自然更好。标签 Expand 相关题目 Expand 分析:尝试写了遍manacher算法。其中p[i]表
wangyuquanliuli
·
2015-08-12 20:00
面试
lintcode
LintCode-
分糖果
有 N 个小孩站成一列。每个小孩有一个评级。按照以下要求,给小孩分糖果:每个小孩至少得到一颗糖果。评级越高的小孩可以得到更多的糖果。需最少准备多少糖果?您在真实的面试中是否遇到过这个题? Yes样例给定评级= [1,2],返回 3.给定评级= [1,1,1],返回 3.给定评级= [1,2,2],返回 4.([1,2,1]).标签 Expand 分析:其实题目描述的有点问题,不是评级越高的小孩可
wangyuquanliuli
·
2015-08-11 20:00
面试
lintcode
LintCode-
和大于S的最小子数组
给定一个由n个整数组成的数组和一个正整数s,请找出该数组中满足其和≥s的最小长度子数组。如果无解,则返回-1。您在真实的面试中是否遇到过这个题? Yes样例给定数组 [2,3,1,2,4,3] 和s= 7,子数组 [4,3] 是该条件下的最小长度子数组。挑战如果你已经完成了O(n)时间复杂度的编程,请再试试O(nlogn)时间复杂度。标签 Expand 相关题目 Expand 分析:数组的题目一
wangyuquanliuli
·
2015-08-11 20:00
面试
lintcode
LintCode-
通配符匹配
判断两个可能包含通配符“?”和“*”的字符串是否匹配。匹配规则如下:'?'可以匹配任何单个字符。 '*'可以匹配任意字符串(包括空字符串)。 两个串完全匹配才算匹配成功。 函数接口如下: boolisMatch(constchar*s,constchar*p)您在真实的面试中是否遇到过这个题? Yes样例一些例子:isMatch("aa","a")→false isMatch("aa","aa
wangyuquanliuli
·
2015-08-09 19:00
面试
lintcode
LintCode-
最大子数组 III
给定一个整数数组和一个整数k,找出k个不重叠子数组使得它们的和最大。每个子数组的数字在数组中的位置应该是连续的。返回最大的和。您在真实的面试中是否遇到过这个题? Yes样例给出数组[-1,4,-2,3,-2,3]以及k=2,返回8注意子数组最少包含一个数挑战要求时间复杂度为O(n)标签 Expand 相关题目 Expand 分析:做不到题目要求的挑战,只能想到前i个数里面取了j段,这样dp[i]
wangyuquanliuli
·
2015-08-09 16:00
面试
lintcode
LintCode-
分割回文串 II
给定一个字符串s,将s分割成一些子串,使每个子串都是回文。返回s符合要求的的最少分割次数。您在真实的面试中是否遇到过这个题? Yes样例比如,给出字符串s= "aab",返回1,因为进行一次分割可以将字符串s分割成["aa","b"]这样两个回文子串标签 Expand 相关题目 Expand 分析:一开始写了个n的三次的dp,结果超时,差不多是dp[i][j]=min(dp[i][k]+dp[k
wangyuquanliuli
·
2015-08-09 14:00
面试
lintcode
LintCode-
硬币排成线
有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走1或2个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。请判定 第一个玩家 是输还是赢?您在真实的面试中是否遇到过这个题? Yes样例n= 1,返回 true.n= 2,返回 true.n= 3,返回 false.n= 4,返回 true.n= 5,返回 true.挑战O(1)时间复杂度且O(1)存储。标签 Expand 相关题目 Expa
wangyuquanliuli
·
2015-08-08 19:00
面试
lintcode
LintCode-
带环链表 II
给定一个链表,如果链表中存在环,则返回到链表中环的起始节点的值,如果没有环,返回null。您在真实的面试中是否遇到过这个题? Yes样例给出 -21->10->4->5,tailconnectstonodeindex1,返回10挑战不使用额外的空间标签 Expand 相关题目 Expand 分析:首先肯定可以利用快慢指针来判断该链表中有没有环,如果快慢指针能够遇到,那么肯定存在环,那么完全可以把
wangyuquanliuli
·
2015-08-08 16:00
面试
lintcode
LintCode-
排序列表转换为二分查找树
给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树您在真实的面试中是否遇到过这个题? Yes样例标签 Expand 相关题目 Expand 分析:就是一个简单的递归,只是需要有些链表的操作而已代码:/** *DefinitionofListNode *classListNode{ *public: *intval; *ListNode*next; *ListNode(intv
wangyuquanliuli
·
2015-08-08 16:00
面试
lintcode
LintCode-
删除排序链表中的重复数字 II
给定一个排序链表,删除所有重复的元素只留下原链表中没有重复的元素。您在真实的面试中是否遇到过这个题? Yes样例给出1->2->3->3->4->4->5->null,返回1->2->5->null给出1->1->1->2->3->null,返回 2->3->null标签 Expand 分析:因为是排序链表,所以每次判断和后面的是不是一样就行,一样就一直把这个相同的遍历到不同的点代码:/** *
wangyuquanliuli
·
2015-08-08 15:00
面试
lintcode
LintCode-
旋转链表
给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数您在真实的面试中是否遇到过这个题? Yes样例给出链表1->2->3->4->5->null和k=2返回4->5->1->2->3->null标签 Expand 相关题目 Expand 分析:感觉很直观,直接把分割点找出来就行,记得k可能大于len,要取模代码:/** *Definitionforsingly-linkedl
wangyuquanliuli
·
2015-08-08 15:00
面试
lintcode
LintCode-
编辑距离
给出两个单词word1和word2,计算出将word1转换为word2的最少操作次数。你总共三种操作方法:插入一个字符删除一个字符替换一个字符您在真实的面试中是否遇到过这个题? Yes样例给出work1="mart"和work2="karma"返回3标签 Expand 相关题目 Expand 分析:经典的动态规划面试题,在有道的实习面中遇到过,用dp[i][j]表示第一个字符串到i第二个字符串到
wangyuquanliuli
·
2015-06-27 16:00
面试
lintcode
LintCode-
排序矩阵中的从小到大第k个数
在一个排序矩阵中找从小到大的第 k 个整数。排序矩阵的定义为:每一行递增,每一列也递增。您在真实的面试中是否遇到过这个题? Yes样例给出 k = 4 和一个排序矩阵:[ [1,5,7], [3,7,8], [4,8,9], ] 返回 5。挑战使用O(klogn)的方法,n为矩阵的宽度和高度中的最大值。标签 Expand 相关题目 Expand 分析:一般这种题都是用一个最大/最小堆,每次取出其
wangyuquanliuli
·
2015-06-27 15:00
面试
lintcode
LintCode-
最大子数组差
给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A)-SUM(B)|最大。返回这个最大的差值。您在真实的面试中是否遇到过这个题? Yes样例给出数组[1,2,-3,1],返回6注意子数组最少包含一个数挑战时间复杂度为O(n),空间复杂度为O(n)标签 Expand 相关题目 Expand 分析:这题还是有点难度的感觉,首先直觉是可以套用求最大字数组和的代码,其
wangyuquanliuli
·
2015-06-26 19:00
面试
lintcode
LintCode-
搜索区间
给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。如果目标值不在数组中,则返回[-1,-1]您在真实的面试中是否遇到过这个题? Yes样例给出[5,7,7,8,8,10]和目标值target=8,返回[3,4]挑战时间复杂度O(log n)标签 Expand 分析:就是简单的二分查找啦。代码:classSolution{ /** *@paramA:aninteg
wangyuquanliuli
·
2015-06-25 23:00
面试
lintcode
LintCode-
搜索旋转排序数组 II
跟进“搜索旋转排序数组”,假如有重复元素又将如何?是否会影响运行时间复杂度?如何影响?为何会影响?写出一个函数判断给定的目标值是否出现在数组中。您在真实的面试中是否遇到过这个题? Yes样例给出[3,4,4,5,7,0,1,2]和target=4,返回true标签 Expand 分析:有重复数据还是很蛋疼的,重点在于消重,要使得A[l]严格大于A[r],这样就可以继续判断区间的单调性,从而二分代
wangyuquanliuli
·
2015-06-25 22:00
面试
lintcode
LintCode-
搜索旋转排序数组
假设有一个排序的按未知的旋转轴旋转的数组(比如,0124567 可能成为4567012)。给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。你可以假设数组中不存在重复的元素。您在真实的面试中是否遇到过这个题? Yes样例给出[4,5,1,2,3]和target=1,返回2给出[4,5,1,2,3]和target=0,返回-1标签 Expand 相关题目 Expan
wangyuquanliuli
·
2015-06-25 21:00
面试
lintcode
LintCode-
二叉树的层次遍历 II
给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历)您在真实的面试中是否遇到过这个题? Yes样例给出一棵二叉树 {3,9,20,#,#,15,7},3 /\ 920 /\ 157按照从下往上的层次遍历为:[ [15,7], [9,20], [3] ]标签 Expand 分析:就是层次遍历呀。。。代码:/** *DefinitionofT
wangyuquanliuli
·
2015-06-25 19:00
面试
lintcode
LintCode-
寻找峰值
你给出一个整数数组(size为n),其具有以下特点:相邻位置的数字是不同的A[0]A[n-1]假定P是峰值的位置则满足A[P]>A[P-1]且A[P]>A[P+1],返回数组中任意一个峰值的位置。您在真实的面试中是否遇到过这个题? Yes样例给出数组[1,2,1,3,4,5,7,6]返回1,即数值2所在位置,或者6,即数值7所在位置.注意数组可能包含多个峰值,只需找到其中的任何一个即可标签 Exp
wangyuquanliuli
·
2015-06-25 19:00
面试
lintcode
LintCode-
最长公共前缀
给k个字符串,求出他们的最长公共前缀(LCP)您在真实的面试中是否遇到过这个题? Yes样例在"ABCD""ABEF"和"ACEF"中, LCP为"A"在 "ABCDEFG","ABCEFG","ABCEFA"中,LCP为"ABC"标签 Expand 分析:就是直接两两计算前缀。。。代码:classSolution{ public: /** *@paramstrs:Alistofstrings
wangyuquanliuli
·
2015-06-25 18:00
面试
lintcode
LintCode-
最长公共子串
给出两个字符串,找到最长公共子串,并返回其长度。您在真实的面试中是否遇到过这个题? Yes样例给出A=“ABCD”,B=“CBCE”,返回2注意子串的字符应该连续的出现在原字符串中,这与子序列有所不同。标签 Expand 相关题目 Expand 分析:注意是子串,不是子序列,当然做法肯定也是动态规划啦,只不过转移方程需要稍微变化变化。代码:classSolution{ public: /** *
wangyuquanliuli
·
2015-06-25 18:00
面试
lintcode
LintCode-
落单的数 III
给出2*n+2个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。您在真实的面试中是否遇到过这个题? Yes样例给出 [1,2,2,3,4,4,5,3],返回1和5挑战O(n)时间复杂度,O(1)的额外空间复杂度标签 Expand 相关题目 Expand 分析:这种抖机灵的题要是面试官面我,我肯定会批判一番的!把所有数亦或下,得到的数可以求出两不同数的亦或值,这样可以找到一个位,
wangyuquanliuli
·
2015-06-25 17:00
面试
lintcode
LintCode-
落单的数 II
给出3*n+1个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字。您在真实的面试中是否遇到过这个题? Yes样例给出 [1,1,2,3,3,3,2,2,4,1] ,返回4挑战一次遍历,常数级的额外空间复杂度标签 Expand 贪心分析:考位操作的一道题,如果每个数字都出现三次的话,那么我们可以把那个位的bit模3,剩下来的就是只出现一次的那个数的位了。实际工程谁会这么写啊==代码:c
wangyuquanliuli
·
2015-06-25 15:00
面试
lintcode
LintCode-
最近公共祖先
给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。最近公共祖先是两个节点的公共的祖先节点且具有最大深度。您在真实的面试中是否遇到过这个题? Yes样例对于下面这棵二叉树4 /\ 37 /\ 56 LCA(3,5)= 4LCA(5,6)= 7LCA(6,7)= 7标签 Expand 分析:最近公共祖先,比较常见的题了,先求出从顶点到A,B两的路径,再根据路径判断即可。代码:/** *Defi
wangyuquanliuli
·
2015-06-25 12:00
面试
lintcode
LintCode-
简化路径
给定一个文档(Unix-style)的完全路径,请进行路径简化。您在真实的面试中是否遇到过这个题? Yes样例"/home/",=> "/home""/a/./b/../../c/",=> "/c"挑战你是否考虑了路径= "/../" 的情况?在这种情况下,你需返回"/"。此外,路径中也可能包含双斜杠'/',如 "/home//foo/"。在这种情况下,可忽略多余的斜杠,返回 "/home/foo
wangyuquanliuli
·
2015-06-24 22:00
面试
lintcode
LintCode-
寻找缺失的数
给出一个包含0.. N 中 N 个数的序列,找出0.. N 中没有出现在序列中的那个数。您在真实的面试中是否遇到过这个题? Yes样例N = 4 且序列为 [0,1,3] 时,缺失的数为2。注意可以改变序列中数的位置。挑战在数组上原地完成,使用O(1)的额外空间和O(N)的时间。分析:感觉题目描述的不清晰,看起来是说0-N序列中只少了一个数,从样例猜测。。。于是就靠这种序列的和瞎做了一番。。。代码
wangyuquanliuli
·
2015-06-24 19:00
lintcode
LintCode-
打劫房屋
假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱,算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下。样例给定 [3,8,4],返回 8.挑战O(n)时间复杂度且O(1)存储。分析:又是一个动态
wangyuquanliuli
·
2015-05-23 16:00
面试
lintcode
LintCode-
下一个排列
给定一个若干整数的排列,给出按正数大小进行字典序从小到大排序后的下一个排列。如果没有下一个排列,则输出字典序最小的序列。样例左边是原始排列,右边是对应的下一个排列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1挑战不允许使用额外的空间。分析:从后往前找,找到第一对(i,j),使得nums[i]&nums){ //writeyourcodehere intn=nums
wangyuquanliuli
·
2015-05-23 15:00
面试
lintcode
LintCode-
硬币排成线 II
有 n 个不同价值的硬币排成一条线。两个参赛者轮流从右边依次拿走1或2个硬币,直到没有硬币为止。计算两个人分别拿到的硬币总价值,价值高的人获胜。请判定 第一个玩家 是输还是赢?样例给定数组A= [1,2,2],返回 true.给定数组A= [1,2,4],返回 false.分析:肯定还是动态规划问题,而已可以知道dp[i]肯定和dp[i-1],dp[i-2]有关,注意根据样例的情况,应该是轮流从左
wangyuquanliuli
·
2015-05-23 12:00
面试
lintcode
LintCode-
硬币排成线 III
Thereare n coinsinaline.Twoplayerstaketurnstotakeacoinfromoneoftheendsofthelineuntiltherearenomorecoinsleft.Theplayerwiththelargeramountofmoneywins.Couldyoupleasedecidethefirstplayerwillwinorlose?样例Gi
wangyuquanliuli
·
2015-05-22 23:00
面试
lintcode
LintCode-
第一个错误的代码版本
代码库的版本号是从1到 n 的整数。某一天,有人提交了错误版本的代码,因此造成自身及之后版本的代码在单元测试中均出错。请找出第一个错误的版本号。你可以通过 isBadVersion 的接口来判断版本号version是否在单元测试中出错,具体接口详情和调用方法请见代码的注释部分。样例给出 n=5调用isBadVersion(3),得到false调用isBadVersion(5),得到true调用is
wangyuquanliuli
·
2015-05-21 23:00
面试
lintcode
LintCode-
最小调整代价
给一个整数数组,调整每个数的大小,使得相邻的两个数的差小于一个给定的整数target,调整每个数的代价为调整前后的差的绝对值,求调整代价之和最小是多少。样例对于数组[1,4,2,3]和target=1,最小的调整方案是调整为[2,3,2,3],调整代价之和是2。返回2。注意你可以假设数组中每个整数都是正整数,且小于等于100。分析:一般这种题,每个位置上都有很多种可能,基本上就是动态规划了,又因为
wangyuquanliuli
·
2015-05-21 23:00
面试
lintcode
LintCode-
二叉树中的最大路径和
给出一棵二叉树,寻找一条路径使其路径和最大,路径可以在任一节点中开始和结束(路径和为两个节点之间所在路径上的节点权值之和)样例给出一棵二叉树:1 /\ 23 返回 6分析:每条最长路径都肯定会以某个顶点为跟,然后两边是以那个节点为跟到叶子节点的最长路径。代码:/** *DefinitionofTreeNode: *classTreeNode{ *public: *intval; *TreeNode
wangyuquanliuli
·
2015-05-21 21:00
面试
lintcode
LintCode-
跳跃游戏
给出一个非负整数数组,你最初定位在数组的第一个位置。数组中的每个元素代表你在那个位置可以跳跃的最大长度。判断你是否能到达数组的最后一个位置。样例A= [2,3,1,1,4],返回true.A= [3,2,1,0,4],返回false.分析:遍历一遍,记录可走的点可以达到的最远点代码:classSolution{ public: /** *@paramA:Alistofintegers *@retu
wangyuquanliuli
·
2015-05-21 20:00
面试
lintcode
LintCode-
用递归打印数字
用递归的方法找到从1到最大的N位整数。样例给出 N=1,返回[1,2,3,4,5,6,7,8,9].给出 N=2,返回[1,2,3,4,5,6,7,8,9,10,11,...,99].注意用下面这种方式去递归其实很容易:recursion(i){ ifi>largestnumber: return results.add(i) recursion(i+1) } 但是这种方式会耗费很多的递归空间,导
wangyuquanliuli
·
2015-05-21 19:00
面试
lintcode
LintCode-
赋值运算符重载
实现赋值运算符重载函数,确保:新的数据可准确地被复制旧的数据可准确地删除/释放可进行 A=B=C 赋值样例如果进行 A=B 赋值,则A中的数据被删除,取而代之的是B中的数据。如果进行 A=B=C 赋值,则A和B都复制了C中的数据。挑战充分考虑安全问题,并注意释放旧数据。分析:说实话,题目没有描述清楚,实际上就是写一个深拷贝,注意自己给自己赋值的特殊情况。代码:classSolution{ publ
wangyuquanliuli
·
2015-05-21 18:00
面试
lintcode
上一页
1
2
3
4
5
6
7
下一页
按字母分类:
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
其他