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系列
Count and Say
每日算法——
leetcode系列
问题CountandSayDifficulty:EasyThecount-and-saysequenceisthesequenceofintegersbeginningasfollows
carlblack
·
2016-01-18 00:00
递归
leetcode
算法
c++
Search Insert Position
每日算法——
leetcode系列
问题SeSearchInsertPositionDifficulty:MediumGivenasortedarrayandatargetvalue,returntheindexifthetargetisfound.Ifnot
carlblack
·
2016-01-12 00:00
数组
二分查找
leetcode
算法
c++
Search for a Range
每日算法——
leetcode系列
问题SearchforaRangeDifficulty:MediumGivenasortedarrayofintegers,findthestartingandendingpositionofagiventargetvalue.Youralgorithm'sruntimecomplexitymustbeintheorderofO
carlblack
·
2016-01-11 00:00
数组
二分查找
leetcode
算法
c++
# Search in Rotated Sorted Array
每日算法——
leetcode系列
问题SearchinRotatedSortedArrayDifficulty:HardSupposeasortedarrayisrotatedatsomepivotunknowntoyoubeforehand
carlblack
·
2016-01-11 00:00
二分查找
数组
leetcode
算法
c++
Substring with Concatenation of All Words
标签:C++算法LeetCode字符串每日算法——
leetcode系列
问题SubstringwithConcatenationofAllWordsDifficulty:HardYouaregivenastring
CarlBlack
·
2016-01-07 22:48
Merge k Sorted Lists
标签:C++算法LeetCode链表每日算法——
leetcode系列
问题MergeTwoSortedListsDifficulty:EasyMergetwosortedlinkedlistsandreturnitasanewlist.Thenewlistshouldbemadebysplicingtogetherthenodesofthefirsttwolists
CarlBlack
·
2015-12-31 08:31
Reverse Nodes in k-Group
每日算法——
leetcode系列
问题ReverseNodesink-GroupDifficulty:HardGivenalinkedlist,reversethenodesofalinkedlistkatatimeandreturnitsmodifiedlist.Ifthenumberofnodesisnotamultipleofkthenleft-outnodesintheendshouldre
carlblack
·
2015-12-31 00:00
链表
leetcode
算法
c++
Swap Nodes in Pairs
标签(空格分隔):C++算法LeetCode链表每日算法——
leetcode系列
问题SwapNodesinPairsDifficulty:MediumGivenalinkedlist,swapeverytwoadjacentnodesandreturnitshead.Forexample
carlblack
·
2015-12-30 00:00
链表
leetcode
算法
c++
Generate Parentheses
每日算法——
leetcode系列
问题GenerateParenthesesDifficulty:MediumGivennpairsofparentheses,writeafunctiontogenerateallcombinationsofwell-formedparentheses.Forexample
carlblack
·
2015-12-28 00:00
递归
字符串
leetcode
算法
c++
【
leetcode系列
】Valid Parentheses
非常经典的问题,使用栈来解决,我这里自己实现了一个栈,当然也能够直接用java自带的Stack类。 自己实现的栈代码: import java.util.LinkedList; class StackOne { LinkedList<Object> data; int top; int maxSize; StackOne(int size) { // TODO
·
2015-11-12 16:35
LeetCode
[
LeetCode系列
]翻转链表问题II
给定一个链表和两个整数m, n, 翻转链表第m个节点到第n个节点(从1开始计数). 如, 给定链表: 1->2->3->4->5->NULL, 以及 m = 2, n = 4. 返回 1->4->3->2->5->NULL. 假定m和n满足约束条件: 1 ≤ m ≤ n&n
·
2015-11-11 14:28
LeetCode
[
LeetCode系列
]组合和枚举问题
给定一列数(未排序)和一个目标值, 找出所有可能的组合和等于目标值的组合, 数组中的数可以重复使用. 算法思路: 使用递归. 对数组排序, 从小到大; 令i = 起始下标(初始为0), 对于每一个数, 如果它等于目标值, 则在缓存结果中加入此数并将缓存结果加入输出队列, 随后在缓存结果中删除此数; 如果它小于目标值, 则在缓存结果中加入此数并递归调用此算法,
·
2015-11-11 14:27
LeetCode
[
LeetCode系列
]子集枚举问题[有重复元素]
给定一组数(未排序, 可能有重复元素), 求出所有可能的组合. 算法和无重复元素的相似. 唯一需要注意的是, 如果当前的数字和之前的相同, 算法就只会在结尾数字是此数字的组合后加上此数字. 比如现在是[[] [1] [1 2] [2]], 当前数字是2, 就只会增加[1 2 2] [2 2] 代码: 1 class Solution { 2 publi
·
2015-11-11 14:26
LeetCode
[
LeetCode系列
]3元素最近和问题的O(n^2)解法
给定一个整数数组(长度不小于3) 和 一个目标值, 从数组中找出3个元素, 使得它们的和与目标值最接近, 返回这个和. 可以认为每个输入的组合都是只有唯一解的. 解法思路参考: Finding three elements in an array whose sum is closest to an given number. 我们首先将问题P转化为P': 能否从数组中找到3个元素, 使得它们
·
2015-11-11 14:25
LeetCode
[
LeetCode系列
]子集枚举问题[无重复元素]
给定一组数(未排序), 求它们的所有组合可能. 如给定{1 2 3}, 返回: [ [] [1] [2] [3] [1 2] [1 3] [2 3] [1 2 3] ] 算法思路: 对数组排序, 从小到大; 令 i = 0, 对已有组合v从后往前进行如下操作 v的最后1个组合内加入第i个元素; 将新组合加入到v中 算法
·
2015-11-11 14:25
LeetCode
[
LeetCode系列
]有序链表转换为平衡BST的递归解法
给定有序链表(元素由小到大), 试问如何将其转换为一个平衡BST? 平衡BST: 任意节点的左右子树的深度差值不大于1. 主要思想是用递归. Trick是使用快慢指针来获取中间节点. 获得中间节点后, 将其设为此次递归的root, 随后删除此节点, 并将前一节点的next置NULL. 随后, 对中间节点的前后部分分别进行递归调用, 并将返回值作为其左右子树. 代码如下: 1
·
2015-11-11 14:24
LeetCode
[
LeetCode系列
]链表环探测问题II
给定一个链表头, 探测其是否有环, 如果没有返回NULL, 如果有返回环开始的位置. 环开始的位置定义为被两个指针指向的位置. 算法描述: 1. 快慢指针遍历, 如果到头说明无环返回NULL, 如果相遇说明有环, 进入2. 2. 慢指针回到起点, 快慢指针每次移动一格直到相遇, 返回快指针/慢指针. 代码: 1 class Solution { 2 public: 3
·
2015-11-11 14:23
LeetCode
[
LeetCode系列
]最大容器问题
给定n个数: a1, a2, ... , an. 代表着(i, ai)个点, 连接这些点与对应的(i, 0), 我们可以得到n条线. 请在这n条线中找出2条, 使得这两条线和x轴构成的容器能够容纳最多的水. 本题解法时间复杂度为O(n), 作者是n00tc0d3r. 我们使用2个指针从数组前后开始遍历, 每次循环都计算一次最大值. 当左侧的数比右侧的数小时, 左指针向右挪动一格, 否则, 右
·
2015-11-11 14:23
LeetCode
[
LeetCode系列
]括号生成问题
给定n, 返回所有匹配的n对括号的可能形式. 如 给定 n = 3, 一个解集是: "((()))", "(()())", "(())()", "()(())", "()()()" 本题解法的思路是 使用栈seq保存经历的字符串状态; 使用栈valid保存对应的字符串中
·
2015-11-11 14:22
LeetCode
[
LeetCode系列
]N皇后问题递归解法 -- 位操作方式
N皇后问题: 给定8*8棋盘, 放置n个皇后, 使其互相不能攻击(即2个皇后不能放在同一行/列/正反对角线上), 求解共有多少种放置方式? 这个问题的解答网上有不少, 但是位操作解法的我看到的不多. 下面贴出代码和图解, 也就不赘述了. 1 class Solution { 2 public: 3 /* 使用位操作实现的回溯算法. 按行扫描, 检测可以放置
·
2015-11-11 14:21
LeetCode
[
LeetCode系列
]最大连续子列递归求解分析
本文部分参考Discuss: LeetCode. 步骤1. 选择数组的中间元素. 最大子序列有两种可能: 包含此元素/不包含. 步骤2. 步骤2.1 如果最大子序列不包含中间元素, 就对左右子序列进行步骤1. 步骤2.2 如果最大子序列包含, 则结果很简单, 就是左子列的最大后缀子列(即包含左子列最后一个元素--中间元素)加上右子列的最大前缀子列(即包含右子列第一个元素--中间元素
·
2015-11-11 14:20
LeetCode
[
LeetCode系列
]卡特兰数(Catalan Number) 在求解独特二叉搜寻树(Unique Binary Search Tree)中的应用分析
本文原题: LeetCode. 给定 n, 求解独特二叉搜寻树 (binary search trees) 的个数. 什么是二叉搜寻树? 二叉查找树(Binary Search Tree),或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序
·
2015-11-11 14:17
Binary search
[
LeetCode系列
] 二叉树最大深度求解问题(C++递归解法)
问: 给定二叉树, 如何计算二叉树最大深度? 算法描述如下: 如果当前节点为空, 返回0(代表此节点下方最大节点数为0) 如果当前节点不为空, 返回(其左子树和右子树下方最大节点数中的最大值+1) 上述算法的精髓在于递归调用中的终止条件. 代码如下: 1 /** 2 * Definition for binary tree 3 * struct TreeNode
·
2015-11-11 14:14
LeetCode
Remove Element
题目链接https://leetcode.com/problems/remove-element/ 这道题比较简单,为了维护这个
leetcode系列
的完整性,我依然把它加在这里,code
·
2015-11-11 11:25
element
[
LeetCode系列
] 最长回文子串问题
给定字符串S, 找到其子串中最长的回文字符串. 反转法: 反转S为S', 找到其中的最长公共子串s, 并确认子串s在S中的下标iS与在S'中的下标iS'是否满足式: length(S) = iS + iS' + length(s). 如果满足则s为搜索结果, 如果不满足我们就继续搜索. DP解法: 定义 P[i][j] = true
·
2015-11-11 09:10
LeetCode
[
LeetCode系列
] 变序词查找问题(Anagrams)
给定一系列词, 找出其中所有的变序词组合. Note: 变序词 - 组成字符完全相同但次序不同的单词. 如dog和god, ate和eat. 算法描述: 使用map<string, vector<string> >存储所有的结果. 最后将map中size > 1的vector<string>插入到结果中. 代码:
·
2015-11-11 09:08
LeetCode
[
LeetCode系列
] 跳跃问题II
给定一系列非负整数, 每个值代表从此下标可以向前跳跃的最远距离, 试求出跳跃到数组尾端需要的最少步骤. 如给定 [2,3,1,1,4], 返回2. (从下标0跳到1, 从1跳到下标4). 算法描述: 贪心算法, 从头开始遍历数组, 记录通过ret+1步能够到达的最远下标为curr, 记录通过ret步能够到达的最远下标为last, 当遍历到的下标i大于上一次能
·
2015-11-11 09:07
LeetCode
[
LeetCode系列
] K节点倒序问题迭代解法
给定链表和整数k, 使用in-space方法将链表按k个为一组进行倒序, 如果剩余个数不足k个则保留其原始顺序. 如给定1->2->3->4->5, k = 2, 需要返回 2->1->4->3->5; 给定1->2->3->4->5, k = 3, 需要返回 3->2->1->
·
2015-11-11 09:06
LeetCode
[
LeetCode系列
]BST有效性确定问题[前序遍历]
给定一个BST的根节点, 试判断此BST是否为符合规则的BST? 规则: 对于一个BST的节点, 它左侧的所有节点(包括子节点)必须小于它本身; 它右侧的所有节点(包括子节点)必须大于它本身; 它的左右节点也必须满足上面两条. 算法思路: 对于给定的根节点N, 先找到它左子节点L的最底层的右子节点MR, 比较MR和N的值, 如果 MR >= N, 则返回false;
·
2015-11-11 09:06
LeetCode
[
LeetCode系列
] 双单链表共同节点搜索问题
找到两个单链表的共同节点. 举例来说, 下面两个链表A和B: A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3 共同节点为c1. 分析: 共同节点距离A,B
·
2015-11-11 03:02
LeetCode
[
LeetCode系列
] 从中序遍历和后序遍历序列构造二叉树(迭代解法)
给定中序遍历inorder和后序遍历postorder, 请构造出二叉树. 算法思路: 设后序遍历为po, 中序遍历为io. 首先取出po的最后一个节点作为根节点, 同时将这个节点入stn栈; 随后比较io的最后一个节点和stn栈顶节点: 如果不同则将此节点添加到栈顶节点的右侧并入stn栈, 同时从po中删除这个节点; 此时的栈
·
2015-11-11 03:56
LeetCode
Leetcode系列
-Search in Rotated Sorted Array
做Leetcode题有一段时间了,但都是断断续续的,到现在才做了30题左右,感觉对自己来说还是有点难度的。希望自己能继续坚持下去,在校招前能解决超过一百题吧。 其实这些题就是用来训练你的解题思路的,做多了的话,才能在校招时面对编程题目,能立即有一个解题的流程,知道这是哪一种类型的题目,一般用什么样的套路,思路会很清晰,比如基础的字符串,数组操作会用到一些排序算法,还有一类是算法思想的题目
·
2015-11-07 12:18
LeetCode
LeetCode系列
字符串操作(一)ZigZag输出,寻找最大不重复字串长度。
http://blog.csdn.net/michael_kong_nju/article/details/44831243ZigZagConversion Thestring "PAYPALISHIRING" iswritteninazigzagpatternonagivennumberofrowslikethis:(youmaywanttodisplaythispatterninafixed
u011321908
·
2015-04-03 15:00
LeetCode
String
substring
ZigZag
【
leetcode系列
】Valid Parentheses
很经典的问题,使用栈来解决,我这里自己实现了一个栈,当然也可以直接用java自带的Stack类。自己实现的栈代码:importjava.util.LinkedList; classStackOne{ LinkedListdata; inttop; intmaxSize; StackOne(intsize){ //TODOAuto-generatedconstructorstub top=-1;
benbmw2008
·
2014-08-07 17:00
LeetCode
valid
Parentheses
【
leetcode系列
】3Sum
这个题我最开始的思路是:先一个数定下来,然后在除这个数之外的集合里面找另外两个数,最后计算和。如此反复,对于N个数,需要进行N-2次循环。我遇到的问题就是怎么找另外两个数,其实我想过参照TwoSum里面的解法,就是用Hashtable存,键值对的结构是>,但是构造这个Hashtable就需要O(N^2),后面真正解的时候有需要O(N^2)。参考了大牛的解法后,明白了找两个数还是用两个下标同时往中间
benbmw2008
·
2014-08-07 10:00
LeetCode
3Sum
【
leetcode系列
】String to Integer (atoi)
这个我就直接上代码了,最开始把“abc123“也算作合法的了,后来查了一下atoi的定义,把这种去掉了。publicclassSolution{ publicstaticintatoi(StringinStr){ longresult=0L; /* *网上查了一下,atoi函数的定义是如果第一个非空格字符存在,是数字或者正负号则开始做类型转换, *之后检测到非数字(包括结束符\0)字符时停止转换,
benbmw2008
·
2014-08-06 09:00
LeetCode
atoi
【
leetcode系列
】Two Sum
解法一,我自己想的,有点弱,时间复杂度O(n^2)。publicclassSolution{ publicint[]twoSum(int[]numbers,inttarget){ int[]result=newint[2]; for(inti=0;ihm=newHashMap(); for(inti=0;i
benbmw2008
·
2014-08-05 11:00
LeetCode
SUM
Two
判断字符串是否能分割成字典中的单词(二)——
Leetcode系列
(十二)
Givenastringsandadictionaryofwordsdict,addspacesinstoconstructasentencewhereeachwordisavaliddictionaryword.Returnallsuchpossiblesentences.Forexample,givens="catsanddog",dict=["cat","cats","and","sand"
Hooting
·
2014-06-29 22:10
java
LeetCode
使用迭代法对二叉树进行前序遍历——
Leetcode系列
(七)
Givenabinarytree,returnthepreordertraversalofitsnodes'values.Forexample:Givenbinarytree{1,#,2,3},1\2/3return[1,2,3].Note:Recursivesolutionistrivial,couldyoudoititeratively?MyAnswer/***Definitionforbin
Hooting
·
2014-06-11 09:25
java
LeetCode
使用快速排序算法对列表进行排序——
Leetcode系列
(四)
SortalinkedlistinO(nlogn)timeusingconstantspacecomplexity.MyAnswer:/***Definitionforsingly-linkedlist.*classListNode{*intval;*ListNodenext;*ListNode(intx){*val=x;*next=null;*}*}*/publicclassSolution{p
Hooting
·
2014-06-08 14:55
java
LeetCode
上一页
1
2
3
4
5
6
下一页
按字母分类:
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
其他