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/2个数。思路一:可以使用快速排序将数组排好序,然后返回中位数,这样做的时间复杂度是O(nlogn).思路二:为了降低复杂度,现在我们使用“折半的快速排序”。就是每一次只对一边的数组进行排序。示例代码:#include#includeusingnamespacestd;cla
爱秋刀鱼的猫
·
2019-12-16 18:52
lintcode-
线段树的构造
classSolution{public:/***@paramstart,end:Denoteansegment/interval*@return:TherootofSegmentTree*/SegmentTreeNode*build(intstart,intend){//writeyourcodehereif(start>end){returnNULL;}SegmentTreeNode*root
鬼谷神奇
·
2019-11-02 20:07
lintcode-
哈希函数
在数据结构中,哈希函数是用来将一个字符串(或任何其他类型)转化为小于哈希表大小且大于等于零的整数。一个好的哈希函数可以尽可能少地产生冲突。一种广泛使用的哈希函数算法是使用数值33,假设任何字符串都是基于33的一个大整数,比如:hashcode("abcd")=(ascii(a)*333+ascii(b)*332+ascii(c)33+ascii(d))%HASH_SIZE=(97333+98*33
鬼谷神奇
·
2019-11-02 01:44
LintCode-
排序列表转换为二分查找树分析及实例
给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树您在真实的面试中是否遇到过这个题?分析:就是一个简单的递归,只是需要有些链表的操作而已代码:/***DefinitionofListNode*classListNode{*public:*intval;*ListNode*next;*ListNode(intval){*this->val=val;*this->next=NULL
·
2019-09-22 21:00
lintcode-
统计数字
描述计算数字k在0到n中的出现的次数,k可能是0~9的一个值。样例样例1:输入:k=1,n=1输出:1解释:在[0,1]中,我们发现1出现了1次(1)。样例2:输入:k=1,n=12输出:5解释:在[0,1,2,3,4,5,6,7,8,9,10,11,12]中,我们发现1出现了5次(1,10,11,12)(注意11中有两个1)。本题是为了统计数字k(0~9)在0到n中出现的次数,首先我们以普通的情
A_liukai
·
2019-04-22 22:57
练习
[每日一题]-
LintCode-
回文排列
来源:
lintcode-
回文排列描述给定一个字符串,判断字符串是否存在一个排列是回文排列。
呼延十
·
2018-12-10 20:14
LintCode
每日一题
回文排列
数据结构及算法
每日一题
LintCode-
不同的子序列-动态规划
描述给出字符串S和字符串T,计算S的不同的子序列中T出现的个数。子序列字符串是原始字符串通过删除一些(或零个)产生的一个新的字符串,并且对剩下的字符的相对位置没有影响。(比如,“ACE”是“ABCDE”的子序列字符串,而“AEC”不是)。样例给出S="rabbbit",T="rabbit"返回3挑战DoitinO(n2)timeandO(n)memory.O(n2)memoryisalsoacce
想当厨子的程序员
·
2018-11-10 15:12
LintCode-
最大整除子集-动态规划
描述给一个由无重复的正整数组成的集合,找出满足任意两个元素(Si,Sj)都有Si%Sj=0或Sj%Si=0成立的最大子集如果有多种解集,返回其中任意一个。样例给一个数组[1,2,3],返回[1,2]或[1,3]给一个数组[1,2,4,8],返回[1,2,4,8]代码classSolution:"""@param:nums:asetofdistinctpositiveintegers@return:
想当厨子的程序员
·
2018-11-10 15:18
LintCode-
划分和相等的子集-动态规划
描述给一只含有正整数的非空数组,找到这个数组是否可以划分为两个元素和相等的子集。所有数组元素不超过100.数组大小不超过200.样例给一数组[1,5,11,5],返回true,两个子集:[1,5,5],[11]给一数组[1,2,3,9],返回false代码classSolution:"""@paramnums:anon-emptyarrayonlypositiveintegers@return:t
想当厨子的程序员
·
2018-11-10 15:44
LintCode-
二叉树的路径和 I、II
I描述给定一个二叉树,找出所有路径中各节点相加总和等于给定目标值的路径。一个有效的路径,指的是从根节点到叶节点的路径。样例给定一个二叉树,和目标值=5:1/\24/23返回:[[1,2,2],[1,4]]代码"""DefinitionofTreeNode:classTreeNode:def__init__(self,val):self.val=valself.left,self.right=Non
想当厨子的程序员
·
2018-09-22 10:10
解锁
lintcode-
猫和狗的问题
1,采用cnn算法,目前准确率做到84.7%,用了几种图像预处理算法和旋转之类的增加训练样本的方法,效果不理想,后继续再改进,有高手欢迎分享源码一块学习2,遇到的一些问题及解决办法:(1)XXXisnan交叉熵计算时出现了梯度爆炸,需要对预测值做clip_by_value进行截断,注意一下min,与max的设置(2)对图像数据需要进行归一化可以选用tensorflow自带的tf.image.per
NBtingwu
·
2018-04-02 15:15
机器学习
lintcode
猫狗分类
人工智能
cnn
lintcode-
交叉字符串
本题初想不算难,只能按照s1和s2字符串的顺序去挨个比较字符串s3,本能就会想到递归算法,利用递归去减少代码量,但是这里有一个隐藏点,当比较到的位置s1和s2字符相同,且都与s3的相同,此时就应该分两种情况,即让s1该字符与s3上进行比配,然后往后比较,或者让s2该字符与s3上进行匹配,然后往后比较。匹配过程中若存在s1和s2位置上字符都不能和s3上字符匹配,则匹配失败,s3不是s1和s2的交叉字
ddou_pan
·
2018-03-24 15:43
LintCode-
数字整除数
742.数字整除数一个数字整除数是指一个可以被其中包含的每个数字整除的数.举个例子,128是一个数字整除数,因为128%1==0,128%2==0,and128%8==0.并且,数字整除数不允许包含数字0.给出数字取值的上下限,输出一个包含所有数字整除数的列表,包括边界.注意事项0digitDivideNums(longlonglower,intupper){//writeyourcodehere
insidel
·
2018-03-02 19:11
c++
LintCode-
岛屿的个数
433.岛屿的个数给一个01矩阵,求不同的岛屿的个数。0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。样例在矩阵:[[1,1,0,0,0],[0,1,0,0,1],[0,0,0,1,1],[0,0,0,0,0],[0,0,0,0,1]]中有3个岛.标签Zenefits谷歌脸书相关题目2中等大岛的数量21%2(breadth-first-search),(un
insidel
·
2018-02-28 17:17
lintcode
c++
lintcode-
第k大的数
题目:在数组中找到第k大的元素样例:给出数组 [9,3,2,4,8],第三大的元素是 4给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推/*** findKthMaxnumber*/publicstaticintkthLargestElement(intk,int[]nums){ if(null==nums||kk-1) //第k大
Ailubby
·
2018-02-08 15:39
排序
lintcode-
两数之和-BST版本
题目:给一棵二叉搜索树以及一个整数 n,在树中找到和为 n 的两个数字样例:给一棵BST:4/\25/\13以及一个整数n= 3返回 [1,2] 或 [2,1]思路:遍历节点,在节点上判断另一个数是否存在代码:/** *DefinitionofTreeNode: *publicclassTreeNode{ * publicintval; * publicTreeNodeleft,right
Ailubby
·
2018-02-05 22:37
数据结构
LintCode-
[容易] 496. 玩具工厂
描述:工厂模式是一种常见的设计模式。请实现一个玩具工厂ToyFactory用来产生不同的玩具类。可以假设只有猫和狗两种玩具。样例:ToyFactorytf=ToyFactory();Toytoy=tf.getToy(‘Dog’);toy.talk();输出Wowtoy=tf.getToy(‘Cat’);toy.talk();输出Meow思路:利用多态,将Toy设为抽象基类,Dog和Cat继承Toy
雨中烟花00
·
2017-08-23 11:31
-LintCode-
LintCode-
[容易] 548. 两数组的交II
描述:计算两个数组的交注意事项:每个元素出现次数得和在数组里一样答案可以以任意顺序给出样例:nums1=[1,2,2,1],nums2=[2,2],返回[2,2].思路:把538.两数组的交中的删除重复元素的操作去掉即可。C++实现:classSolution{public:/***@paramnums1anintegerarray*@paramnums2anintegerarray*@retur
雨中烟花00
·
2017-08-23 11:51
-LintCode-
LintCode-
[容易] 547. 两数组的交
描述:返回两个数组的交注意事项:Eachelementintheresultmustbeunique.Theresultcanbeinanyorder.(在输出里的每个元素必须唯一,输出里元素的顺序不作要求)样例:nums1=[1,2,2,1],nums2=[2,2],返回[2].思路:先用sort函数将两个向量按从小到大排序,再删除重复的数字。然后从头同时遍历两个向量,如果在同一下标处两个数相等
雨中烟花00
·
2017-08-23 11:28
-LintCode-
LintCode-
[容易] 539. 移动零
描述:给一个数组nums写一个函数将0移动到数组的最后面,非零元素保持原数组的顺序注意事项:1.必须在原数组上操作2.最小化操作数样例:给出nums=[0,1,0,3,12],调用函数之后,nums=[1,3,12,0,0].思路:遍历一遍向量,把所有的0项删除,并记录0的个数,最后在向量后面加上这个数量的0。C++实现:classSolution{public:/***@paramnumsani
雨中烟花00
·
2017-08-23 11:11
c++
lintcode
-LintCode-
LintCode-
[中等] 612. K个最近的点
描述:给定一些points和一个origin,从points中找到k个离origin最近的点。按照距离由小到大返回。如果两个点有相同距离,则按照x值来排序;若x值也相同,就再按照y值排序。样例:给出points=[[4,6],[4,7],[4,4],[2,5],[1,1]],origin=[0,0],k=3返回[[1,1],[2,5],[4,4]]思路:运用pair同时记录points里的每个点的
雨中烟花00
·
2017-08-09 00:00
-LintCode-
LintCode-
[入门] 454. 矩阵面积
描述:1.实现一个矩阵类Rectangle,包含如下的一些成员变量与函数。2.两个共有的成员变量width和height分别代表宽度和高度。一个构造函数,接受2个参数width和height来设定矩阵的宽度和高度。3.一个成员函数getArea,返回这个矩阵的面积。样例:Rectanglerec=newRectangle(3,4);rec.getArea();//shouldget12思路:运用基
雨中烟花00
·
2017-08-06 23:55
-LintCode-
LintCode-
[容易] 211. 字符串置换
描述:给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。置换的意思是,通过改变顺序可以使得两个字符串相等。样例:“abc”为“cba”的置换。“aabc”不是“abcc”的置换。思路:优先检查两个字符串的长度,长度不一样直接返回0;把两个字符串用冒泡排序按照从小到大把每个字符排序,如果两个字符串满足置换的条件,排序后的字符串是一样的;对比两个排序后的字符串,相等返回1,不
雨中烟花00
·
2017-08-06 16:10
-LintCode-
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-
最长回文子串
问题描述:给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。image.png问题分析:中心扩展法如果是一个回文序列,那么以这个序列中心字符展开的前缀和后缀都是一样的,因此,我们可以枚举中心位置,然后再在这个位置上扩展。记录并且更新得到最长的回文长度。示例代码:classSolution{public:/***@paramsinputstrin
爱秋刀鱼的猫
·
2017-02-23 15:25
LintCode-
最大数
给出一组非负整数,重新排列他们的顺序把他们组成一个最大的整数。 注意事项最后的结果可能很大,所以我们返回一个字符串来代替这个整数。您在真实的面试中是否遇到过这个题? Yes样例给出 [1,20,23,4,8],返回组合最大的整数应为8423201。packageLintCode; importjava.util.Arrays; importjava.util.Comparator; publi
fk5431
·
2016-05-13 22:00
lintcode
lintcode-
数字组合II
题目:给出一组候选数字(C)和目标数字(T),找出C中所有的组合,使组合中数字的和为T。C中每个数字在每个组合中只能使用一次类型:回溯地址:http://www.lintcode.com/zh-cn/problem/combination-sum-ii/注意事项所有的数字(包括目标数字)均为正整数。元素组合(a1,a2,…,ak)必须是非降序(ie,a1≤a2≤…≤ak)。解集不能包含重复的组合。
鬼谷神奇
·
2016-03-14 10:36
lintcode-
【中等】恢复IP地址
题目给一个由数字组成的字符串。求出其可能恢复为的所有IP地址。链接。样例给出字符串 "25525511135",所有可能的IP地址为:["255.255.11.135","255.255.111.35"]答案直接暴力遍历就行了,只不过需要注意的是0,以及数字是不能有前缀0。代码1classSolution{ 2private: 3intstrToInt(conststring&str) 4{
Shirlies
·
2016-02-29 20:00
lintcode-
阶梯-剑指最后一章
lintcode阶梯训练剑指offer最后一章。 两个简单的没啥可说的,三个中等的就是二叉树的一些操作,简单看了一下,其实跟我以前的二叉树操作的代码有很多重复的东西(我的TreeTools类基本覆盖了).层次遍历就不说了,锯齿层次就是在层次上加个栈就可以达到目的了,序列化和反序列化有很多种方法,刚看到的时候就想到前序遍历和中序遍历了。一棵树很容易求出前序遍历和中序遍历,前序遍历和中序
薛聚坡
·
2016-01-24 23:00
lintcode-
乘积最大子序列
找出一个序列中乘积最大的连续子序列(至少包含一个数)。您在真实的面试中是否遇到过这个题?样例比如,序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6classSolution{ public: intmaxProduct(vector&nums){ intposMax=nums[0]; intnegMax=nums[0]; intret=nums[0]; for(int
ljlstart
·
2015-11-06 23:00
lintcode-
滑动窗口的最大值
给出一个可能包含重复的整数数组,和一个大小为k的滑动窗口,从左到右在数组中滑动这个窗口,找到数组中每个窗口内的最大值。样例给出数组[1,2,7,7,8],滑动窗口大小为k=3.返回[7,7,8].解释:最开始,窗口的状态如下:[|1,2,7|,7,8],最大值为7;然后窗口向右移动一位:[1,|2,7,7|,8],最大值为7;最后窗口再向右移动一位:[1,2,|7,7,8|],最大值为8.挑战O(
ljlstart
·
2015-10-29 20:00
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) } 但是这种方式会耗费很多的递归空间,导致堆
ljlstart
·
2015-10-24 23:00
lintcode-
赋值运算符重载
实现赋值运算符重载函数,确保:新的数据可准确地被复制旧的数据可准确地删除/释放可进行A=B=C赋值样例如果进行A=B赋值,则A中的数据被删除,取而代之的是B中的数据。如果进行A=B=C赋值,则A和B都复制了C中的数据。挑战充分考虑安全问题,并注意释放旧数据。说明本题只适用于C++,因为Java和Python没有对赋值运算符的重载机制。classSolution{ public: char*m_pD
ljlstart
·
2015-10-24 23:00
lintcode-
N皇后问题
n皇后问题是将n个皇后放置在n*n的棋盘上,皇后彼此之间不能相互攻击。给定一个整数n,返回所有不同的n皇后问题的解决方案。每个解决方案包含一个明确的n皇后放置布局,其中“Q”和“.”分别表示一个女王和一个空位置。样例对于4皇后问题存在两种解决的方案:[ [".Q..",//Solution1 "...Q", "Q...", "..Q."], ["..Q.",//Solution2
ljlstart
·
2015-10-24 21:00
lintcode-
最长回文子串-200
给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。样例给出字符串"abcdzdcab",它的最长回文子串为"cdzdc"。挑战O(n2)时间复杂度的算法是可以接受的,如果你能用O(n)的算法那自然更好classSolution{ public: stringlongestPalindrome(string&s){ if(s.empty())
ljlstart
·
2015-10-23 01:00
lintcode-
排序列表转换为二分查找树-106
/** *DefinitionofListNode *classListNode{ *public: *intval; *ListNode*next; *ListNode(intval){ *this->val=val; *this->next=NULL; *} *} *DefinitionofTreeNode: *classTreeNode{ *public: *intval; *TreeNod
ljlstart
·
2015-10-21 22:00
lintcode-
Flatten Binary Tree to Linked List-453
Flattenabinarytreetoafake"linkedlist"inpre-ordertraversal.HereweusetherightpointerinTreeNodeasthenextpointerinListNode.样例1 \ 12 /\\ 25=>3 /\\\ 3464 \ 5 \ 6 注意Don'tforgettomarktheleftchildofeachnodeton
ljlstart
·
2015-10-21 21:00
LintCode-
最大数
分享代码~boolcmp(stringa,stringb){if(a+b>b+a)returntrue;elsereturnfalse;}classSolution{public:/***@paramnum:Alistofnonnegativeintegers*@return:Astring*/stringtoString(intx){if(x==0){return"0";}strings="";
cjf478
·
2015-10-20 21:13
lintcode-
合并k个排序链表-104
合并k个排序链表,并且返回合并后的排序链表。尝试分析和描述其复杂度。样例给出3个排序链表[2->4->null,null,-1->null],返回 -1->2->4->null/** *DefinitionofListNode *classListNode{ *public: *intval; *ListNode*next; *ListNode(intval){ *this->val=val; *
ljlstart
·
2015-10-19 21:00
lintcode-
落单的数III-84
给出2*n+2个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。样例给出[1,2,2,3,4,4,5,3],返回1和5挑战O(n)时间复杂度,O(1)的额外空间复杂度classSolution{ intgetbitposition(inta){ intnum=1; intcount=0; while((a&num)==0){ numsingleNumberIII(vector&A
ljlstart
·
2015-10-19 20:00
lintcode-
前序遍历和中序遍历树构造二叉树-73
/** *DefinitionofTreeNode: *classTreeNode{ *public: *intval; *TreeNode*left,*right; *TreeNode(intval){ *this->val=val; *this->left=this->right=NULL; *} *} */ classSolution{ public: TreeNode*buildTre
ljlstart
·
2015-10-19 01:00
lintcode-
中序遍历和后序遍历树构造二叉树-72
/** *DefinitionofTreeNode: *classTreeNode{ *public: *intval; *TreeNode*left,*right; *TreeNode(intval){ *this->val=val; *this->left=this->right=NULL; *} *} */ classSolution{ public: TreeNode*buildTree(
ljlstart
·
2015-10-19 00:00
lintcode-
回文链表-223
设计一种方式检查一个链表是否为回文链表。样例1->2->1就是一个回文链表。挑战O(n)的时间和O(1)的额外空间。/** *Definitionforsingly-linkedlist. *structListNode{ *intval; *ListNode*next; *ListNode(intx):val(x),next(NULL){} *}; */ classSolution{ publi
ljlstart
·
2015-10-18 23:00
lintcode-
买卖股票的最佳时机II-150
假设有一个数组,它的第i个元素是一个给定的股票在第i天的价格。设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。样例给出一个数组样例[2,1,2,0,1],返回2貌似有点像贪心算法,其实也很好理解,拿只笔比划比划就懂了classSolution{ public: intmaxProfit(vector&prices
ljlstart
·
2015-10-15 21:00
lintcode-
买卖股票的最佳时机-149
假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。样例给出一个数组样例[3,2,3,1,2],返回1可以这道题转换成求数组中两个元素的最大差值(而且是右边的数减去左边的数)classSolution{ public: intmaxProfit(vector&prices){ if(prices.empty
ljlstart
·
2015-10-15 21:00
lintcode-
不同的二叉查找树-163
给出n,问由1...n为节点组成的不同的二叉查找树有多少种?您在真实的面试中是否遇到过这个题?样例给出n=3,有5种不同形态的二叉查找树:13321 \///\\ 321132 //\\ 2123 没有什么好办法,就是找规律Thecasefor3elementsexample Count[3]=Count[0]*Count[2](1asroot) +Count[1]*Count[1](2asroo
ljlstart
·
2015-10-15 21:00
lintcode-
表达式求值-368
给一个用字符串表示的表达式数组,求出这个表达式的值。样例对于表达式(2*6-(23+7)/(1+2)),对应的数组为:[ "2","*","6","-","(", "23","+","7",")","/", (","1","+","2",")" ], 其值为2注意表达式只包含整数,+,-,*,/,(,)解题思路: step1:把中缀表达式转换成后缀表达式 step2:通
ljlstart
·
2015-10-15 20:00
lintcode-
电话号码的字母组合-425
给一个数字字符串,每个数字代表一个字母,请返回其所有可能的字母组合。下图的手机按键图,就表示了每个数字可以代表的字母。样例给定"23"返回["ad","ae","af","bd","be","bf","cd","ce","cf"]classSolution{ public: voidinit(){ node['2'].push_back('a'); node['2'].push_back('b')
ljlstart
·
2015-10-15 20:00
lintcode-
装最多水的容器-383
给定n个非负整数a1,a2,...,an,每个数代表了坐标中的一个点(i,ai)。画n条垂直线,使得i垂直线的两个端点分别为(i,ai)和(i,0)。找到两条线,使得其与x轴共同构成一个容器,以容纳最多水。样例给出[1,3,2],最大的储水面积是2.注意容器不可倾斜。classSolution{ public: intmaxArea(vector&heights){ if(heights.emp
ljlstart
·
2015-10-14 23:00
上一页
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
其他