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-双指针
C++Leetcode876:链表的中间节点
1、
双指针
法。使用快慢指针遍历链表,判断快指针的终点位置,最后得到慢指针的位置就是中间节点。2、待优化。题目给定一个带有头结点head的非空单链表,返回链表的中间结点。
钰捷
·
2020-08-14 21:09
C++LeetCode
leetcode-
删除链表元素
203.RemoveLinkedListElementsRemoveallelementsfromalinkedlistofintegersthathavevalueval.去掉链表中的val。代码classSolution{publicListNoderemoveElements(ListNodehead,intval){if(head==null)returnhead;while(head.v
青菜白玉
·
2020-08-14 21:08
leetcode
leetcode
删除链表的倒数第N个节点(
双指针
法 + 逐行注释)
1.题目描述给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表:1->2->3->4->5,和n=2.当删除了倒数第二个节点后,链表变为1->2->3->5.说明:给定的n保证是有效的。进阶:你能尝试使用一趟扫描实现吗?2.解题思路2.1方法一:两次遍历算法思路该问题可以简化:删除从列表开头数起的第(L-n+1)个结点,其中L是列表的长度。只要我们找到列表的长度L,这
ON_THE_WAY_FOREVER
·
2020-08-14 21:07
Leetcode_#83_从有序链表中删除重复节点
原题:#83_从有序链表中删除重复节点解题思路:链表本身有序,所以若是有重复,那必是连在一起的单指针(
双指针
类似):时间复杂度:O(n)空间复杂度:O(1)publicListNodef(ListNodehead
以后再换个名字
·
2020-08-14 20:15
数据结构与算法
leetcode记录
leetcode-
最大子序和
给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入:[-2,1,-3,4,-1,2,1,-5,4],输出:6解释: 连续子数组 [4,-1,2,1]的和最大,为 6。进阶:如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的分治法求解。classSolution{public:intmaxSubArray(vector&nums){in
seasea1991
·
2020-08-14 20:30
LeetCode 19. 删除链表的倒数第N个节点(C++)
思路:
双指针
,控制两个指针距离为n,同时后移,然后删除第一个指针的下一个元素,注意不要访问空指针,比如p->next,p->next->next都不能为空。我的解
Neu_new_niu_妞er
·
2020-08-14 20:06
数据结构
算法
leetcode
[算法练习-剑指offer]题14.链表中倒数第k个结点(Java)
初次思路
双指针
,两个之间相差k个位置,后面一个到尾部,前面一个就是倒数第k个,注意校验超界就行了解题代码publicclassSolution{publicListNodeFindKthToTail(ListNodehead
叶落雨飘
·
2020-08-14 19:15
算法练习
剑指offer
LeetCode083——删除排序链表中的重复元素
LeetCode原题链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/description/题目描述:知识点:链表思路:
双指针
遍历链表本题和
清風逐尘乀
·
2020-08-14 19:02
LeetCode题解
LeetCode143——重排链表
github.com/617076674/LeetCode原题链接:https://leetcode-cn.com/problems/reorder-list/description/题目描述:知识点:
双指针
清風逐尘乀
·
2020-08-14 19:02
LeetCode题解
LeetCode 633:平方数之和(C++实现)
思路:使用
双指针
法,最小为0,最大为输入数的平方根,判断当前两个指针是否满足要求。
ToLiveXX
·
2020-08-14 18:39
LeetCode
leetcode-
面试题 02.03. 删除中间节点
//面试题02.03.删除中间节点//实现一种算法,删除单向链表中间的某个节点(除了第一个和最后一个节点,不一定是中间节点),假定你只能访问该节点。//示例://输入:单向链表a->b->c->d->e->f中的节点c//结果:不返回任何数据,但该链表变为a->b->d->e->f//来源:力扣(LeetCode)//链接:https://leetcode-cn.com/problems/dele
qianzi_wei
·
2020-08-14 18:43
leetcode
LeetCode 203.移除链表元素 (C++实现)
示例:输入:1->2->6->3->4->5->6,val=6输出:1->2->3->4->5二、思路如果删除的节点是中间的节点,则问题非常简单,也是利用
双指针
的技巧。
潇湘夜雨~
·
2020-08-14 18:54
算法刷题
LeetCode|C++|19. Remove Nth Node From End of List
然后使用
双指针
p和q,再加上一个pre指针,q指针先移动到顺数第n个位置,然后三个指针一起移动,p指针指向的元素就是要删除的元素,删除操作要用到pre指针classSolution{public:ListNode
ClaraR
·
2020-08-14 18:18
leetcode
c++
LeetCode-Python-203. 移除链表元素
示例:输入:1->2->6->3->4->5->6,val=6输出:1->2->3->4->5思路:
双指针
法,pre和cur分别指着当前节点的前一个节点,和当前节点,然后按删除node的流程操作就可以。
暴躁老哥在线刷题
·
2020-08-14 18:07
Leetcode
Python
链表
leetcode 21. 合并两个有序链表(C++)
方法一:
双指针
法一快一慢,两个指针。如果有环的话,那么最终快慢指针会相遇。即如果两个指针不相等,那么都继续前进,除非快指针
qq_27931977
·
2020-08-14 18:06
leetcode
LeedCode算法思想-
双指针
文章目录1.有序数组的TwoSum2.两数平方和3.反转字符串中的元音字符4.回文字符串5.归并两个有序数组6.判断链表是否存在环7.最长子序列
双指针
主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务
王祖龙Jason
·
2020-08-14 18:55
数据结构算法
【LeetCode】15. 三数之和(Middle)
方法二:排序+
双指针
边界判断,对于数组长度n,如果数组为null
然后微微笑
·
2020-08-14 18:15
LeetCode
(
双指针
)leetcode 26、 27、203、283
26RemoveDuplicatesfromSortedArrayGivenasortedarray,removetheduplicatesinplacesuchthateachelementappearonlyonceandreturnthenewlength.Donotallocateextraspaceforanotherarray,youmustdothisinplacewithconst
LUCASYAN个
·
2020-08-14 18:53
leetcode
C练题笔记之:
Leetcode-
面试题 02.03. 删除中间节点 && 237. 删除链表中的节点
面试题一开始看的很奇怪,因为我理解成给我的node是头,所以不知道删除什么。后来才明白给我的是要删除的节点,而没有给我头。237题的描述就很清楚。既然如此,只能让自己成为自己下一个节点,然后删除下一个节点了。题目:结果:面试题:237:代码:(代码完全一样)/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListN
悦阳要努力哟
·
2020-08-14 17:42
C
刷题笔记
Leetcode-
删除链表中的节点
55.删除链表中的节点题目内容:代码及思路:第一次做题的时候按照之前做题的思路,给定一个列表LinkNode*head和一个目标节点数target,则可以实现题目中的要求:/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode(intx):val(x),next(NULL){}*};*/
chestnutllin
·
2020-08-14 17:07
Leetcode编程题
双指针
一、
双指针
总结1.1题目快慢指针(主要解决链表中的问题)141.环形链表142.环形链表II876.链表的中间结点剑指Offer22.链表中倒数第k个节点左右指针704.二分查找167.两数之和II-输入有序数组
juriau
·
2020-08-14 16:24
[
LeetCode-
面试02.01]删除单链表中的重复元素
链表元素在[0,20000]范围内二.题解1.第一种方法:
双指针
法(1)解题思路:HashSet中存入未曾出现的元素,pre和current依次向后推进HashSet出现出现过的
Movle
·
2020-08-14 16:45
LeetCode
LeetCode19. 删除链表的倒数第N个节点c++
允许反馈(两趟扫描)就是计数,不多赘述一趟扫描:
双指针
法:先来个先驱指针pioneerpt1,从head起走上n步,再从头来个指针pt2和他一块走,走到pt1->
XiquanHe
·
2020-08-14 16:41
竞赛题目篇
LeetCode 19.删除链表的倒数第n个节点 C++代码实现
思路:1.暴力法,第一遍扫描链表长度,第二遍寻找倒数第n个位置,然后删除,此方法用了两次遍历2.
双指针
法,采用两个指针,实现时让第一个指针先走n-1步,
Suzy_l
·
2020-08-14 15:02
leetcode-
字符串-简单-C-第一部分
文章目录序号13序号14序号20序号38序号58序号67序号125序号344序号345序号383序号387序号392序号415序号434序号443序号520序号521序号541序号551序号557序号13解析:由后一个字母和前一个字母大小比较,决定前一个字母的正负模拟存储字母对应值,可以用数组保存,也可以函数switch返回intromanToInt(char*s){intvalue[150]={
鲁仲连
·
2020-08-14 14:51
C/C++
leetcode-
链表-简单-C
解析:这是无头节点的1.
双指针
先按有头节点做,最后头节点向后移,也可叫做伪头节点/***Definitionforsingl
鲁仲连
·
2020-08-14 14:19
C/C++
leetcode-
二分查找-C
文章目录序号69序号278序号367序号374序号441序号704序号744序号852面试08.03面试10.05面试11面试53-I面试题53-II序号69题目:实现intsqrt(intx)函数。计算并返回x的平方根,其中x是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。解析:牛顿法二分法在大于2时,整数平方根一定小于x/2,每次判断mid*mid==xmid=left
鲁仲连
·
2020-08-14 14:19
C/C++
leetcode-
字符串-简单-C-第二部分
文章目录序号606序号657序号680序号686序号696序号709序号788序号804序号606题目:你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号“()”表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。解析:递归strcat不能连接NULL,所以另建函数完成连接当前值在本层完成连接括号在上层完成#defineMAX
鲁仲连
·
2020-08-14 14:19
C/C++
LeetCode:寻找最长回文子串
解题思路:暴力解法:遍历字符串,以每一个/两个字符串为中心,
双指针
同时向前后移动,依次寻找最长回文子串。时间复杂度O(n^2)。
-腰果-
·
2020-08-14 08:01
415. 字符串相加(逐句解释代码)
publicStringaddStrings(Stringnum1,Stringnum2){//用StringBuffer方便操作StringBuffersb=newStringBuffer("");//用
双指针
Rabbit_Sir
·
2020-08-14 07:41
LeetCode
Java
分割数组为连续子序列
LeetCode-
目录题目运行时间代码题目输入一个按升序排序的整数数组(可能包含重复数字),你需要将它们分割成几个子序列,其中每个子序列至少包含三个连续整数。返回你是否能做出这样的分割?示例1:输入:[1,2,3,3,4,5]输出:True解释:你可以分割出这样两个连续子序列:1,2,33,4,5示例2:输入:[1,2,3,3,4,4,5,5]输出:True解释:你可以分割出这样两个连续子序列:1,2,3,4,53
那些小花
·
2020-08-14 07:55
LeetCode
LeetCode——第二十七天(验证回文字符串 Ⅱ)
分析:
双指针
肯定都知道,然后通过跳过一项来判断剩下继续用
双指针
来判断是否是回文。
双指针
:classSoluti
猪无戒_
·
2020-08-14 07:43
LeetCode记录
Codeforces 701C They Are Everywhere(尺取/
双指针
)
题目链接题意有一排临街的房子,相邻房子之间可以直接移动到,只能选择一个地方从街上进入房子里,也只能出来一次,问找到所有种类Pokemon的最少要访问几个房子思路很明显就是要找出一个包含所有种类字符的最短的子区间,直接尺取扫一遍,记录一下最小区间长度就行了,很标准的尺取法。代码#includeusingnamespacestd;stringstr;mapM;intmain(){intn;cin>>n
Shufu_C
·
2020-08-14 06:55
题解
leetcode-
动态规划之最大子序列和
一:题目描述二:题目分析(重点)dp[i]记录以nums[i]为子序列末端的最大序子列连续和那么状态转移方程为:dp[i]=max{dp[i-1]+nums[i],nums[i]},时间复杂度为n注意不要与dp[i]=max{dp[i-1]+nums[i],dp[i-1]}相混乱.此方程求得的为可以为不连续的元素最大和,也就是简单的数组元素的最大和.请务必思考这一点.三:测试通过代码法一:动态规划
JAVA/C++
·
2020-08-14 06:02
ACM刷题
leetcode-
石子游戏III
题目是LeetCode第183场周赛的第四题,链接:石子游戏III。具体描述为:Alice和Bob用几堆石子在做游戏。几堆石子排成一行,每堆石子都对应一个得分,由数组stoneValue给出。Alice和Bob轮流取石子,Alice总是先开始。在每个玩家的回合中,该玩家可以拿走剩下石子中的的前1、2或3堆石子。比赛一直持续到所有石头都被拿走。每个玩家的最终得分为他所拿到的每堆石子的对应得分之和。
JR_Chan
·
2020-08-14 06:12
LeetCode
双指针
遍历(输出链表中倒数第k个结点)
那么这道题该从何入手,其实这道题考察的是
双指针
遍历,但是这个可不是快慢指针。相当于一个现实中的例子。
xiaofenzhao
·
2020-08-13 23:31
撸题之旅
C/C++相关
剑指 Offer 24. 反转链表 双百解法,简单易懂
双指针
解法*Definitionforsingly-linkedlist.
乔森Joy
·
2020-08-13 22:05
计算机
Codeforces Round #661 (Div. 3) C. Boats Competition
http://codeforces.com/problemset/problem/1399/C
双指针
,枚举2-2*n。
ICPC不拿牌不改名
·
2020-08-13 22:50
codeforces
暴力枚举
leetcode-
数字的补数(java版)
文章目录题目思路代码题目给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。示例1:输入:5输出:2解释:5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例2:输入:1输出:0解释:1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。注意:给定的整数保证在32位带符号整数的范围内。你可以假定二进制数不包含前导零位。本题与1009https://le
lingle1
·
2020-08-13 22:55
leetcode刷题
leetcode-
只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?示例1:输入:[2,2,1]输出:1示例2:输入:[4,1,2,1,2]输出:4代码=》异或运算/***@param{number[]}nums*@return{number}*/varsingleNumber=function(
来杯时光
·
2020-08-13 21:49
算法
基本经典算法——数组的最长上升子序列(非连续)
对与最长连续上升子序列,我们只需
双指针
来遍历即可。对于不连续的,我们需要用动态规划来解决这个问题。我们使用一个示例来演示这个算法。
_六六先森
·
2020-08-13 21:30
算法随笔
剑指offer-42.和为S的两个数字-python
双指针
,一前一后,找到的第一对,就
养只小刺猬吧
·
2020-08-13 20:02
剑指offer
查找单链表倒数第k个元素
(提示,使用
双指针
)解题思路:常规思路为先获取链表的长度N,然后返回N-k+1位置处的结点即可。但是中需要遍历两次链表。
undersky_chen
·
2020-08-13 20:21
C语言
算法
判断单链表中是否有环,找到环的入口节点
这类问题通常使用
双指针
的方法,即一个快指针一个慢指针。faster=faster.next.next;slower=slower.next;“公理”:两指针相遇时,快指针走过的路程为慢指针的2倍。
maybe__god
·
2020-08-13 19:19
数据结构&算法
leetcode:反转链表 II
题目链接:反转链表II示例:输入:1->2->3->4->5->NULL,m=2,n=4输出:1->4->3->2->5->NULL思路和代码实现//思路,
双指针
法。
爱哭的毛毛虫好汉歌
·
2020-08-13 18:00
LeetCode
LeetCode-
字符串-2 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入:["flower","flow","flight"]输出:"fl"示例2:输入:["dog","racecar","car"]输出:""解释:输入不存在公共前缀。说明:所有输入只包含小写字母a-z。解析设置一个临时变量保存第一个字符串的每一位就可以了,比较第2-n个字符串的是否一直相等是的话保存,不是
图像与视觉InSight
·
2020-08-13 16:24
leetcode大赏
leetcode-字符串
LeetCode 盛最多水的容器
11.盛最多水的容器两侧向内移动(
双指针
)题目图形已画出了,就是“底x高”最大。高无法确认,但是两侧的距离是最远的,以此算两侧向内移动。
xhBruce
·
2020-08-13 16:06
Java
leetcode
java
Longest k-Good Segment(
双指针
)
timelimitpertest1secondmemorylimitpertest256megabytesThearrayawithnintegersisgiven.Let’scallthesequenceofoneormoreconsecutiveelementsinasegment.Alsolet’scallthesegmentk-goodifitcontainsnomorethankdiff
miao_2cm
·
2020-08-13 15:28
杂七杂八
判断环形链表的入口
示例1:示例2:示例3:2.思路(
双指针
法)这类链表题目一般都是使用
双指针
法解决的,例如寻找距离尾部第K个节点、寻找环入口、寻找公共尾部入口
overlordmax
·
2020-08-13 14:15
剑指Offer
c++反转字符串
这个问题比较简单,解题思路也很多:使用std::reverse()函数从末尾开始读取原字符串,将其放入一个新建的字符串中遍历字符串,首尾交换位置,奇数位的中间元素不用交换
双指针
法,即使用两个指针,一个指向开头
guotianqing
·
2020-08-13 14:30
工作中的数据结构与算法
上一页
131
132
133
134
135
136
137
138
下一页
按字母分类:
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
其他