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
leetCode笔记
leetcode笔记
:Happy Number
一.题目描述Writeanalgorithmtodetermineifanumberis“happy”.Ahappynumberisanumberdefinedbythefollowingprocess:Startingwithanypositiveinteger,replacethenumberbythesumofthesquaresofitsdigits,andrepeattheprocess
liyuefeilong
·
2015-11-05 15:00
LeetCode
Algorithm
C++
算法
map
leetcode笔记
:House Robber II
一.题目描述Note:ThisisanextensionofHouseRobber.Afterrobbingthosehousesonthatstreet,thethiefhasfoundhimselfanewplaceforhisthieverysothathewillnotgettoomuchattention.Thistime,allhousesatthisplacearearrangedi
liyuefeilong
·
2015-11-03 23:00
LeetCode
C++
dp
动态规划
LeetCode笔记
1.Remove Nth Node From End of List Given a linked list, remove the nth node from the end of list and return its head. For example, Given linked list: 1->2->3->4->5, and n = 2.
·
2015-10-31 11:17
LeetCode
leetcode笔记
:Binary Tree Level Order Traversal
一.题目描述Givenabinarytree,returnthelevelordertraversalofitsnodes’values.(ie,fromlefttoright,levelbylevel).Forexample:Givenbinarytree{3,9,20,#,#,15,7},3 /\920 /\157二.题目分析无。三.示例代码参考了Discussion中stellari的做法,
liyuefeilong
·
2015-10-22 23:00
LeetCode
C++
tree
binary
traversal
leetcode笔记
:Longest Common Prefix
一.题目描述Writeafunctiontofindthelongestcommonprefixstringamongstanarrayofstrings.二.题目分析题目的大意是,给定一组字符串,找出所有字符串的最长公共前缀。对比两个字符串的最长公共前缀,其前缀的长度肯定不会超过两个字符串中较短的长度,设最短的字符串长度为n,那么只要比较这两个字符串的前n个字符即可。使用变量prefix保存两个
liyuefeilong
·
2015-10-21 01:00
LeetCode
C++
String
字符串
vector
leetcode笔记
:Recover Binary Search Tree
一.题目描述Twoelementsofabinarysearchtree(BST)areswappedbymistake.Recoverthetreewithoutchangingitsstructure.Note:AsolutionusingO(n)spaceisprettystraightforward.Couldyoudeviseaconstantspacesolution?二.题目分析题目
liyuefeilong
·
2015-10-20 23:00
LeetCode
C++
排序
tree
BST
leetcode笔记
:Minimum Depth of Binary Tree
一.题目描述Givenabinarytree,finditsminimumdepth.Theminimumdepthisthenumberofnodesalongtheshortestpathfromtherootnodedowntothenearestleafnode.二.题目分析这道题属于二叉树的深度优先搜索,然后返回深度最小的值,可以递归(当然,也可以使用迭代)来实现。递归退出的条件是到达叶
liyuefeilong
·
2015-10-17 23:00
LeetCode
C++
tree
二叉树
binary
leetcode笔记
:Maximum Depth of Binary Tree
一.题目描述Givenabinarytree,finditsmaximumdepth.Themaximumdepthisthenumberofnodesalongthelongestpathfromtherootnodedowntothefarthestleafnode.二.题目分析这道题和MinimumDepthofBinaryTree一题相似,这个是求最大深度的,就是对二叉树进行递归,然后将子
liyuefeilong
·
2015-10-17 23:00
LeetCode
C++
二叉树
tree
binary
leetcode笔记
:Evaluate Reverse Polish Notation(逆波兰式的计算)
一.题目描述EvaluatethevalueofanarithmeticexpressioninReversePolishNotation.Validoperatorsare+,-,*,/.Eachoperandmaybeanintegeroranotherexpression.Someexamples:["2","1","+","3","*"]->((2+1)*3)->9["4","13","5
liyuefeilong
·
2015-10-16 18:00
LeetCode
C++
String
atoi
逆波兰式
leetcode笔记
:Binary Tree Preorder Traversal
一.题目描述Givenabinarytree,returnthepreordertraversalofitsnodes’values.Forexample:Givenbinarytree{1,#,2,3},1 \2 / 3return[1,2,3].Note:Recursivesolutionistrivial,couldyoudoititeratively?二.题目分析可使用递归解法,而只要是能
liyuefeilong
·
2015-10-13 23:00
LeetCode
C++
tree
binary
traversal
leetcode笔记
:Largest Rectangle in Histogram
一.题目描述Givennnon-negativeintegersrepresentingthehistogram’sbarheightwherethewidthofeachbaris1,findtheareaoflargestrectangleinthehistogram.Aboveisahistogramwherewidthofeachbaris1,givenheight=[2,1,5,6,2,
liyuefeilong
·
2015-10-13 16:00
C++
vector
stack
Histogram
leeecode
leetcode笔记
:String to Integer (atoi)
一.题目描述Implementatoitoconvertastringtoaninteger.Hint:Carefullyconsiderallpossibleinputcases.Ifyouwantachallenge,pleasedonotseebelowandaskyourselfwhatarethepossibleinputcases.Notes:Itisintendedforthispr
liyuefeilong
·
2015-10-12 23:00
LeetCode
C++
String
Integer
atoi
leetcode笔记
:Isomorphic Strings
一.题目描述Giventwostringssandt,determineiftheyareisomorphic.Twostringsareisomorphicifthecharactersinscanbereplacedtogett.Alloccurrencesofacharactermustbereplacedwithanothercharacterwhilepreservingtheorder
liyuefeilong
·
2015-10-11 22:00
LeetCode
C++
String
vector
ASCII
leetcode笔记
:Implement strStr()
一.题目描述ImplementstrStr().Returnsapointertothefirstoccurrenceofneedleinhaystack,ornullifneedleisnotpartofhaystack.二.题目分析实现strstr()函数。返回needle(关键字)在haystack(字符串)中第一次出现的位置,如果needle不在haystack中,则返回-1。由于使用暴力
liyuefeilong
·
2015-10-09 23:00
LeetCode
C++
String
字符串
KMP
leetcode笔记
:Sudoku Solver
一.题目描述WriteaprogramtosolveaSudokupuzzlebyfillingtheemptycells.Emptycellsareindicatedbythecharacter‘.’.Youmayassumethattherewillbeonlyoneuniquesolution.Thefollowingphotoisasudokupuzzle……anditssolutionn
liyuefeilong
·
2015-10-06 20:00
LeetCode
Algorithm
C++
vector
sudoku
leetcode笔记
:Factorial Trailing Zeroes
一.题目描述Givenanintegern,returnthenumberoftrailingzeroesinn!.Note:Yoursolutionshouldbeinlogarithmictimecomplexity.二.题目分析题目的要求是,给定一个整数n,找出n!结果的末尾为0的数的个数。暴力法是首先求出n!,然后直接计算末尾0的个数。(重复(n!)/10,直到余数非0为止),若输入的n值
liyuefeilong
·
2015-10-04 23:00
LeetCode
Algorithm
C++
阶乘
leetcode笔记
:Path Sum II
一.题目描述Givenabinarytreeandasum,findallroot-to-leafpathswhereeachpath’ssumequalsthegivensum.Forexample:Giventhebelowbinarytreeandsum=22,5 /\48 //\11134 /\/\7251return[ [5,4,11,2], [5,8,4,5] ]二.题目分析这道题与P
liyuefeilong
·
2015-10-02 23:00
LeetCode
C++
tree
Path
DFS
leetcode笔记
:Trapping Rain Water
一.题目描述Givennnon-negativeintegersrepresentinganelevationmapwherethewidthofeachbaris1,computehowmuchwateritisabletotrapafterraining.Forexample,Given[0,1,0,2,1,0,1,3,2,1,2,1],return6.Theaboveelevationmap
Herbert_Zero
·
2015-10-02 23:08
数据结构与算法
leetcode笔记
leetcode笔记
:Trapping Rain Water
一.题目描述Givennnon-negativeintegersrepresentinganelevationmapwherethewidthofeachbaris1,computehowmuchwateritisabletotrapafterraining.Forexample,Given[0,1,0,2,1,0,1,3,2,1,2,1],return6.Theaboveelevationmap
liyuefeilong
·
2015-10-02 23:00
LeetCode
Algorithm
C++
vector
leetcode笔记
:Simplify Path
一.题目描述Givenanabsolutepathforafile(Unix-style),simplifyit.Forexample,path=“/home/”,=>“/home”path=“/a/./b/../../c/”,=>“/c”CornerCases:•Didyouconsiderthecasewherepath=“/../”?Inthiscase,youshouldreturn“/”
Herbert_Zero
·
2015-10-01 00:00
leetcode
c++
stack
string
path
数据结构与算法
leetcode笔记
leetcode笔记
:Simplify Path
一.题目描述Givenanabsolutepathforafile(Unix-style),simplifyit.Forexample,path=“/home/”,=>“/home”path=“/a/./b/../../c/”,=>“/c”CornerCases:•Didyouconsiderthecasewherepath=“/../”?Inthiscase,youshouldreturn“/”
liyuefeilong
·
2015-10-01 00:00
LeetCode
C++
String
stack
Path
leetcode笔记
:Path Sum
一.题目描述Givenabinarytreeandasum,determineifthetreehasaroot-to-leafpathsuchthataddingupallthevaluesalongthepathequalsthegivensum.Forexample:Giventhebelowbinarytreeandsum=22,5 /\ 48 //\ 11134 /\\ 721 retu
liyuefeilong
·
2015-09-29 23:00
LeetCode
Algorithm
C++
tree
DFS
leetcode笔记
:Reorder List
一.题目描述二.题目分析直接按照题目的要求求解,设ListNode*head为待处理的链表,算法包括以下步骤:1.将链表head分为前后两部分,前半部分链表head1和后半部分链表head2;2.将后半段链表head12做逆序操作;3.合并head1,head2;三.示例代码structListNode { intvalue; ListNode*next; ListNode(intx):value
liyuefeilong
·
2015-09-28 19:00
LeetCode
C++
struct
链表
LinkedList
leetcode笔记
:Merge Two Sorted Lists
一.题目描述Mergetwosortedlinkedlistsandreturnitasanewlist.Thenewlistshouldbemadebysplicingtogetherthenodesofthefirsttwolists.二.题目分析这道题题意是,将两个已排序的链表的各个元素进行比较并合并成一个链表,具体思路是,当某一个列表的元素比较小的话,就将其加入到输出链表中,并将该链表的指
liyuefeilong
·
2015-09-25 23:00
LeetCode
Algorithm
C++
list
LinkedList
leetcode笔记
:Valid Parentheses
一.题目描述Givenastringcontainingjustthecharacters’(’,’)’,’{’,’}’,’[’and’]’,determineiftheinputstringisvalid.Thebracketsmustcloseinthecorrectorder,”()”and”()[]”areallvalidbut”(]”and”([)]”arenot.二.题目分析输入一串括
liyuefeilong
·
2015-09-22 13:00
LeetCode
Algorithm
C++
String
stack
leetcode笔记
:Roman to Integer
一.题目描述Givenaromannumeral,convertittoaninteger.Inputisguaranteedtobewithintherangefrom1to3999.二.题目分析还是先总结一下罗马数字,这是网上找到的一些解释:罗马数字是最古老的数字表示方式,比阿拉伯数组早2000多年,起源于罗马…罗马数字有如下符号:基本字符:IVXLCDM对应阿拉伯数字:15105010050
liyuefeilong
·
2015-09-22 10:00
LeetCode
Algorithm
C++
String
Integer
leetcode笔记
:Integer to Roman
一.题目描述Givenaromannumeral,convertittoaninteger.Inputisguaranteedtobewithintherangefrom1to3999.二.题目分析罗马数字总结:1~9:{“I”,“II”,“III”,“IV”,“V”,“VI”,“VII”,“VIII”,“IX”};10~90:{“X”,“XX”,“XXX”,“XL”,“L”,“LX”,“LXX”
liyuefeilong
·
2015-09-19 12:00
LeetCode
Algorithm
C++
Integer
roman
leetcode笔记
:Linked List Cycle 2
一.题目描述Givenalinkedlist,returnthenodewherethecyclebegins.Ifthereisnocycle,returnnull.Followup:Canyousolveitwithoutusingextraspace?二.题目分析在LinkedListCycle题目中,使用了两个指针fast与slow检查链表是否有环,该题在此基础上,要求给出链表中环的入口位
liyuefeilong
·
2015-09-17 17:00
LeetCode
Algorithm
C++
指针
LinkedList
leetcode笔记
:Linked List Cycle
一.题目描述Givenalinkedlist,determineifithasacycleinit.Followup:Canyousolveitwithoutusingextraspace?二.题目分析题目的意思是给定一个链表的头指针,快速判断一个链表是不是有环,如果有环,返回环的起始位置。该题的经典做法是使用两个指针,两个指针均指向头结点,其中一个是快指针,一次走两步;另一个是慢指针,一次只走一
liyuefeilong
·
2015-09-17 13:00
Algorithm
LeetCode
C++
链表
LinkedList
leetcode笔记
:Remove Nth Node From End of List
一.题目描述Givenalinkedlist,removethenthnodefromtheendoflistandreturnitshead.Forexample,Givenlinkedlist:1->2->3->4->5,andn=2.Afterremovingthesecondnodefromtheend,thelinkedlistbecomes1->2->3->5.Note:•Givenn
liyuefeilong
·
2015-09-17 09:00
LeetCode
Algorithm
C++
链表
LinkedList
leetcode笔记
:Climbing Stairs(斐波那契数列问题)
一.题目描述Youareclimbingastaircase.Ittakesnstepstoreachtothetop.Eachtimeyoucaneitherclimb1or2steps.Inhowmanydistinctwayscanyouclimbtothetop?题目的大意是,已知有n阶楼梯,每次只能爬1阶或2阶楼梯,问爬到第n阶楼梯共有几种爬法-_-||。题目可以看成是,设f(n)表示爬
liyuefeilong
·
2015-09-16 00:00
LeetCode
Algorithm
C++
fibonacci
leetcode笔记
:Count and Say
一.题目描述Thecount-and-saysequenceisthesequenceofintegersbeginningasfollows:1,11,21,1211,111221,…1isreadoffas“one1”or11.11isreadoffas“two1s”or21.21isreadoffas“one2”,then“one1”or1211.Givenanintegern,genera
liyuefeilong
·
2015-09-14 09:00
LeetCode
Algorithm
C++
String
sstream
leetcode笔记
:Set Matrix Zeroes
一.题目描述Givenam*nmatrix,ifanelementis0,setitsentirerowandcolumnto0.Doitinplace.Followup:Didyouuseextraspace?AstraightforwardsolutionusingO(mn)spaceisprobablyabadidea.AsimpleimprovementusesO(m+n)space,bu
liyuefeilong
·
2015-09-13 03:00
LeetCode
Algorithm
C++
vector
Matrix
leetcode笔记
:Gas Station
一.题目描述ThereareNgasstationsalongacircularroute,wheretheamountofgasatstationiisgas[i].Youhaveacarwithanunlimitedgastankanditcostscost[i]ofgastotravelfromstationitoitsnextstation(i+1).Youbeginthejourneyw
liyuefeilong
·
2015-09-12 20:00
LeetCode
Algorithm
C++
array
vector
leetcode笔记
:Plus One
一.题目描述Givenanumberrepresentedasanarrayofdigits,plusonetothenumber.二.题目分析一道高精度计算的题,从低位到高位进行计算,同时考虑进位的问题,若最高位计算结果还有进位,就需要在最高位前面添加一位。可做到时间复杂度为O(n),空间复杂度为O(1)。这道题应该算是简化版,因为要求只是对一个数加1,如果任何一位的运算没有进位,则更高位也不需
liyuefeilong
·
2015-09-11 13:00
LeetCode
Algorithm
C++
vector
leetcode笔记
:Power of two
一.题目描述Givenaninteger,writeafunctiontodetermineifitisapoweroftwo.二.题目分析该题要求简单,给定一个整数,判断其是不是2的整数次幂,这道题的解题关键是找到一个规律:如果一个数字是2的整数次幂,若将该数写为二进制数,这个二进制数中有且仅有一位为1,其余均为0。根据这一性质,不难给出以下给出两种解决方法。三.示例代码//将n不停右移,比较二
liyuefeilong
·
2015-09-11 01:00
LeetCode
Algorithm
位运算
C++
power
leetcode笔记
:Rotate Image
一.题目描述Youaregivenann×n2Dmatrixrepresentinganimage.Rotatetheimageby90degrees(clockwise).Followup:Couldyoudothisin-place?二.题目分析由于要求将图像顺时针旋转90度,最简单的做法就是画个图出来观察旋转90度之后的图像的情况,经过分析可知,顺时针旋转90度就是将原来的图像的最后一行作为
liyuefeilong
·
2015-09-10 17:00
LeetCode
C++
image
Matrix
leetcode笔记
:Gray Code(2016腾讯软件开发笔试题)
一.题目描述Thegraycodeisabinarynumeralsystemwheretwosuccessivevaluesdifferinonlyonebit.Givenanon-negativeintegernrepresentingthetotalnumberofbitsinthecode,printthesequenceofgraycode.Agraycodesequencemustbe
做个坏蛋去社会
·
2015-09-09 22:00
gray_code
格雷马
leetcode笔记
:Valid Sudoku
一.题目描述DetermineifaSudokuisvalid,accordingto:SudokuPuzzles-TheRules:http://sudoku.com.au/TheRules.aspx.TheSudokuboardcouldbepartiallyfilled,whereemptycellsarefilledwiththecharacter‘.’.Thefollowingfigur
liyuefeilong
·
2015-09-09 20:00
LeetCode
C++
vector
map
sudoku
leetcode笔记
:Gray Code(2016腾讯软件开发笔试题)
一.题目描述Thegraycodeisabinarynumeralsystemwheretwosuccessivevaluesdifferinonlyonebit.Givenanon-negativeintegernrepresentingthetotalnumberofbitsinthecode,printthesequenceofgraycode.Agraycodesequencemustbe
liyuefeilong
·
2015-09-07 17:00
LeetCode
C++
vector
腾讯
笔试
leetcode笔记
:Single Number II
一.题目描述二.解题思路这道题与SingleNumber(数组中其他数出现两次,仅有一个出现一次的)有所不同,本题变为序列中有一个数出现一次,其他元素出现了三次,同样要求时间复杂度为线性,空间复杂度为常数。事实上,该算法仍可以借助位运算来实现。首先需要确定int类型数据的长度:intWidth=sizeof(int)*8,可以用intWidth大小的变量来存储数组中每个元素的各个二进制位上1出现的
liyuefeilong
·
2015-09-05 11:00
LeetCode
位运算
C++
数组
sizeof
leetcode笔记
:Single Number
一.题目描述二.解题思路题目提到,一个数组中除了一个数只出现一次之外,其他数都出现了两次,找出这个特别的数。这道题对时间和空间有要求,面对这种情况,一般是暗示有十分轻巧而简便的方法进行求解。在一些场景下,使用基本的逻辑运算是个不错的选择。自己简单写了一下,再参照网上部分解法,基本都是使用了异或运算(XOR),任何数与自己进行按位异或都等于0,而任何数与0进行按位异或都等于本身。在C/C++中,按位
Herbert_Zero
·
2015-09-04 23:46
数据结构与算法
leetcode笔记
leetcode笔记
:Single Number
一.题目描述二.解题思路题目提到,一个数组中除了一个数只出现一次之外,其他数都出现了两次,找出这个特别的数。这道题对时间和空间有要求,面对这种情况,一般是暗示有十分轻巧而简便的方法进行求解。在一些场景下,使用基本的逻辑运算是个不错的选择。自己简单写了一下,再参照网上部分解法,基本都是使用了异或运算(XOR),任何数与自己进行按位异或都等于0,而任何数与0进行按位异或都等于本身。在C/C++中,按位
liyuefeilong
·
2015-09-04 23:00
LeetCode
C++
异或
数组
XOR
leetcode笔记
:Permutation Sequence
一.题目描述题目的意思是,假设有{1,2,3,4,…,n},对其中的元素进行排列,总共有n!种组合,将它们从小到大排序,问其中第k个组合的形式是怎样的?二.题目分析方法一:可以一个一个的按次序暴力求解。具体实现可参照题目:NextPermutation。这里并没有实现,主要研究的是方法二的Cantorexpansion算法。方法二:数学解法:CantorexpansionCantorexpansi
Herbert_Zero
·
2015-09-02 13:58
leetcode
c++
Cantor
sort
string
数据结构与算法
leetcode笔记
leetcode笔记
:Permutation Sequence
一.题目描述题目的意思是,假设有{1,2,3,4,…,n},对其中的元素进行排列,总共有n!种组合,将它们从小到大排序,问其中第k个组合的形式是怎样的?二.题目分析方法一:可以一个一个的按次序暴力求解。具体实现可参照题目:NextPermutation。这里并没有实现,主要研究的是方法二的Cantorexpansion算法。方法二:数学解法:CantorexpansionCantorexpansi
liyuefeilong
·
2015-09-02 13:00
LeetCode
C++
String
sort
cantor
leetcode笔记
:Valid Palindrome
一.题目描述二.解题技巧这道题考察回文数(palindrome),这一概念起源于在数学中一类数字,这类数字拥有这样的特征:设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。同理,可以定义英文/中文的回文数,概念和以上的类似,本题就是检测字符串是否为回文数。与数字回文不同的是,题
liyuefeilong
·
2015-08-31 13:00
LeetCode
C++
String
palindrome
leetcode笔记
:Add Binary
一.题目描述Giventwobinarystrings,returntheirsum(alsoabinarystring).Forexample,a=“11”b=“1”Return”100”.二.解题技巧这道题考察两个二进制数相加,考虑到输入的是两组string,同时注意在运算时从左到右分别是从低位到高位,因此需要考虑对输入进行翻转处理,中间二进制树相加部分没有过多的设计障碍,主要是计算进位;在两
liyuefeilong
·
2015-08-15 21:00
LeetCode
C++
String
binary
leetcode笔记
:Merge Sorted Array
一.题目描述二.解题技巧这道题不存在复杂的分析过程和边界条件。如果单纯得考虑从小到大地将两个数组进行合并的话,每次在num1中插入一个数的话,需要将后面的元素都向后移动一位,这样,整个处理过程的时间复杂度为O(m*n)。由于两个数组的元素的个数是知道的,同时,合并后的数组也是递增排序的,也就是说,排序之后的数组的最大值是放在最后面的,因此,我们可以从后往前遍历,也就是将最大值放在第一个数组的m+n
liyuefeilong
·
2015-07-28 00:00
Algorithm
LeetCode
C++
sort
merge
leetcode笔记
:Remove Element
一.题目描述二.解题技巧这道题和RemoveDuplicatesfromSortedArray类似,不同的是这里只要删除值等于给定值的元素即可,可以采用和前面的题相同的做法:可以将原来的数组看作一个栈,设定一个栈顶指针,在对数组进行遍历的时候,判断元素是否等于给定值,如果等于,则直接进行数组的下一个元素,如果不等于,则将该元素放入到栈顶,然后更新指针并处理数组的下一个元素。之所以能这么做,是因为我
liyuefeilong
·
2015-07-26 14:00
LeetCode
Algorithm
C++
指针
stack
leetcode笔记
:Search in Rotated Sorted Array
一.题目描述二.解题技巧由于这道题出现了旋转的情况,即比第一个元素小的元素可能出现在数值的后半段或者不出现。因此,可以考虑采用变种的二分查找,即在比较中间元素与目标之前,先比较第一个元素与目标的关系,这个时候,会出现三种情况:1.第一个元素刚好等于目标,返回第一个元素的坐标,函数结束;2.第一个元素大于目标,那么目标就可能存在被旋转到数组后面的情况,这个时候,还要比较与数组中间元素的关系,这个时候
liyuefeilong
·
2015-07-24 17:00
LeetCode
Algorithm
C++
sort
binary
上一页
10
11
12
13
14
15
16
17
下一页
按字母分类:
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
其他