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
力扣栈和队列
力扣
622(设计循环队列)
力扣
622(设计循环队列)设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。
奋斗&&奋进
·
2025-02-11 04:24
LeetCode
leetcode
数据结构
算法
Queue
力扣
622. 设计循环队列
题目设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQu
冷酷的摸鱼小将
·
2025-02-11 04:20
力扣
leetcode
算法
数据结构
力扣
622.设计循环队列
力扣
622.设计循环队列通过数组索引构建一个虚拟的首尾相连的环当front=rear时队列为空当front=rear+1时队列为满(最后一位不存)classMyCircularQueue{intfront
阳光男孩01
·
2025-02-11 03:47
leetcode
算法
职场和发展
每日一题之 删除有序数组中的重复项I和II
来源:
力扣
(LeetCo
诺坎普的骄傲
·
2025-02-11 02:42
leetcode
成长历程
位运算(典型算法思想)—— OJ例题算法解析思路
目录一、面试题01.01.判定字符是否唯一-
力扣
(LeetCode)运算代码:1.鸽巢原理的优化代码片段:设计思路:2.位图(BitMap)的设计代码片段:设计思路:3.字符到位的映射代码片段:设计思路
Exhausted、
·
2025-02-11 02:04
算法
算法
开发语言
c语言
c++
力扣
面试
力扣
206 反转链表 记录
题目给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:输入:head=[]输出:[]代码classSolution{public:ListNode*reverseList(ListNode*head){ListNode*temp;//保存cur的下一个节点
楚洋的小跟班
·
2025-02-10 17:34
leetcode
链表
算法
力扣
160 相交链表
给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。publicclassSolution{publicListNodegetIntersectionNode(ListNodeheadA,ListNodeheadB){ListNodep=headA;ListNodeq=headB;while(p!=q){p=p!=null
format_push
·
2025-02-10 17:34
leetcode
链表
算法
力扣
206:反转链表【C++】
题目分析原题:输入一个链表,反转链表后,输出新链表的表头。分析:题意非常好理解,即把一个单链表逆序。本题需要考虑的主要问题是,如何将单链表逆序。需要特别注意的是,链表所分配到的内存是一段不连续的内存空间,因此对于单一元素的取用非常麻烦。思路分析思路一:堆栈法大家对于堆栈的特性是否了解呢?堆栈的特性是“先入后出”,即先装入的元素会放在堆栈下面,后装入的元素反而在堆栈上面,因此我们可以通过一次存&取的
The Gao
·
2025-02-10 17:32
LeetCode交流
链表
堆栈
数据结构
leetcode
力扣
206反转链表
206.反转链表-
力扣
(LeetCode)(leetcode-cn.com)structListNode*reverseList(structListNode*head){//实际上是操作三个指针//形参
小白-先森
·
2025-02-10 17:01
力扣刷题
链表
反转
算法
迭代
数据结构
力扣
312场周赛:按身高排序
本文以python为编程语言,题目来源于
力扣
312届周赛题目:给你一个字符串数组names,和一个由互不相同的正整数组成的数组heights。两个数组的长度均为n。
_焱_
·
2025-02-10 17:28
力扣
python
算法
力扣
周赛:第419场周赛
作者简介:爱好技术和算法的研究生上期文章:
力扣
周赛:第415场周赛订阅专栏:
力扣
周赛希望文章对你们有所帮助因为一些特殊原因,这场比赛就打了1h,所以只AC了前面两题。
布布要成为最强的人
·
2025-02-10 16:24
力扣
测试专栏
leetcode
算法
java
lambda
数据结构
Java 数据结构:
栈和队列
Java数据结构:
栈和队列
在软件开发中,数据结构是组织和管理数据的基础。掌握常见的数据结构如栈(Stack)和队列(Queue),能够帮助我们编写出更高效且结构清晰的代码。
哥是传说!!!
·
2025-02-10 16:51
java
数据结构
python
力扣
Leetcode第1534题,统计好三元组的Python解法
Description给你一个整数数组arr,以及a、b、c三个整数。请你统计其中好三元组的数量。如果三元组(arr[i],arr[j],arr[k])满足下列全部条件,则认为它是一个好三元组。0<=i
肥猫_LIL
·
2025-02-10 14:07
leetcode
链表-反转链表
代码随想录-刷题笔记LCR024.反转链表-
力扣
(LeetCode)还记得之前刚学数据结构那会被这道题吓蒙过,觉得这种题毫无意义,用双向链表可以一次性解决,之后发现这确实是很好的一道运用双...三指针的问题
Hasno.
·
2025-02-10 12:15
链表
数据结构
复原IP地址(
力扣
93)
有了上一道题分割字符串的基础,这道题理解起来就会容易很多。相同的思想我就不再赘述,在这里我就说明一下此题额外需要注意的点。首先是终止条件如何确定,上一题我们递归到超过字符串长度时,则说明字符串已经分割完毕,而这道题根据题意,相当与用‘.’来分割字符串,且出现三个点时就可以结束递归了,那么我们需要一个变量来记录点的个数。另外,在我们判断分割出来的子串是否合法时,最后出现的子串可能为空串,就是说第三个
qy发大财
·
2025-02-10 07:29
leetcode
算法
职场和发展
修剪二叉搜索树(
力扣
669)
这道题还是比较复杂,在递归上与之前写过的二叉树的题目都有所不同。如果当前递归到的子树的父节点不在范围中,我们根据节点数值的大小选择进行左递归还是右递归。为什么找到了不满足要求的节点之后,还要进行递归呢?因为该不满足要求的父节点的子树中可能存在满足要求的节点,我们要不断递归子树寻找这些满足要求的节点并向上返回,直到遇到空节点为止。注意这里递归函数的返回值为指向节点的指针,用来返回满足要求的节点。另外
qy发大财
·
2025-02-10 07:59
leetcode
算法
职场和发展
数据结构
组合(
力扣
77)
从这道题开始,我们正式进入回溯算法的学习。之前在二叉树中只是接触到了一丢丢,而这里我们将使用回溯算法解决很多经典问题。那么这道题是如何使用回溯算法的呢?在讲回溯之前,先说明一下此题是如何递归的。毕竟回溯递归不分家,必须先有递归,才会有回溯。而这里的递归就是在题目所给集合的子集中使用for循环选择数字。考虑组合的无序性(1,2和2,1是相同的组合),那么在对递归得到的子集进行遍历时,需要用变量控制f
qy发大财
·
2025-02-10 07:59
leetcode
算法
职场和发展
数据结构
力扣
LeetCode: 63 不同路径Ⅱ
题目:给定一个mxn的整数数组grid。一个机器人初始位于左上角(即grid[0][0])。机器人尝试移动到右下角(即grid[m-1][n-1])。机器人每次只能向下或者向右移动一步。网格中的障碍物和空位置分别用1和0来表示。机器人的移动路径中不能包含任何有障碍物的方格。返回机器人能够到达右下角的不同路径数量。测试用例保证答案小于等于2*10^9。示例1:输入:obstacleGrid=[[0,
不想编程小谭
·
2025-02-10 07:58
LeetCode
leetcode
算法
动态规划
c++
力扣
LeetCode: 1845 座位预约管理系统
题目:请你设计一个管理n个座位预约的系统,座位编号从1到n。请你实现SeatManager类:SeatManager(intn)初始化一个SeatManager对象,它管理从1到n编号的n个座位。所有座位初始都是可预约的。intreserve()返回可以预约座位的最小编号,此座位变为不可预约。voidunreserve(intseatNumber)将给定编号seatNumber对应的座位变成可以预
不想编程小谭
·
2025-02-10 07:57
LeetCode
leetcode
力扣
---28. 找出字符串中第一个匹配项的下标
给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果needle不是haystack的一部分,则返回-1。示例1:输入:haystack="sadbutsad",needle="sad"输出:0解释:"sad"在下标0和6处匹配。第一个匹配项的下标是0,所以返回0。示例2:输入:haystack="leetco
嗯哼呀吼
·
2025-02-10 07:57
leetcode
算法
力扣
279.完全平方数
题目:给你一个整数n,返回和为n的完全平方数的最少数量。完全平方数是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9和16都是完全平方数,而3和11不是。示例1:输入:n=12输出:3解释:12=4+4+4示例2:输入:n=13输出:2解释:13=4+9提示:1vec(n+1,0);//先将平方数存储起来for(inti=1;idp(n+1,n+1);dp[
Takina541
·
2025-02-10 07:55
leetcode
算法
数据结构
力扣
hot100-双指针
283.移动零题目:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。示例1:输入:nums=[0,1,0,3,12]输出:[1,3,12,0,0]思想:利用快慢指针将特定元素往后移动,不能让0在慢指针的后面即可defmoveZeroes(self,nums:List[int])->None:"""Donot
行走的小鱼儿
·
2025-02-10 06:55
leetcode
算法
数据结构
leetcode80:删除有序数组中的重复项||
原题地址:80.删除有序数组中的重复项II-
力扣
(LeetCode)题目描述给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。
向阳1218
·
2025-02-10 06:24
leetcode
算法
leetcode
小白
力扣
之路 367. 有效的完全平方数
给定一个正整数num,编写一个函数,如果num是一个完全平方数,则返回True,否则返回False。说明:不要使用任何内置的库函数,如sqrt。示例1:输入:16输出:True示例2:输入:14输出:FalseboolisPerfectSquare(intnum){inti=1;while(num>0){num-
neeeewbee
·
2025-02-10 06:23
力扣
力扣
80:删除排序数组中的重复项 II
这道题要求我们原地删除重复出现的元素,使得每个元素最多出现两次,并返回删除后数组的新长度。同时,题目要求使用O(1)的额外空间来实现。一、双指针解法思路:由于数组是有序的,我们可以使用双指针法来解决这个问题。我们可以定义两个指针slow和fast分别指向处理后的数组的末尾和当前处理的位置。从第三个元素开始,我们比较当前元素与慢指针向前两步的元素是否相同。如果相同,则说明当前元素出现次数已经超过两次
菠 罗 吹 雪
·
2025-02-10 06:52
leetcode
算法
数据结构
Day25 非递减子序列 全排列 全排列 II
回溯算法part04491.非递减子序列-
力扣
(LeetCode)超时是因为res.contains(path)耗时先搜索所有结果之后判断结果是否有序LinkedListpath=newLinkedList
落叶过河
·
2025-02-10 06:21
代码随想录算法打卡
数据结构
算法
KMP算法详解 + Python源代码(
力扣
28. 找出字符串中第一个匹配项的下标,
力扣
459. 重复的子字符串)
力扣
28.找出字符串中第一个匹配项的下标思路(两种方法):1.双指针循环:(1)首先遍历文本串haystack,直到有一个字符与模式串needle的第一个字符相同,进入深度匹配(2)深度匹配过程中,将文本串后边几个字符
hanyu1209
·
2025-02-10 06:19
算法
python
leetcode
数据结构
力扣
题.80 删除有序数组中的重复项 II
80.删除有序数组中的重复项IIhttps://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组的条件下完成。示例1:输入:nums=[1,1,1,2,2,3]输出
从此不叫無名
·
2025-02-10 06:17
算法
leetcode
力扣
c语言
力扣
LeetCode: 80 删除有序数组中的重复项Ⅱ
题目:给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下://nums是以“引用”方式传
不想编程小谭
·
2025-02-10 06:15
LeetCode
leetcode
算法
数据结构
力扣
-字符串-28 找出字符串中第一个匹配项的下标
思路kmp算法的练习,实际上来说在构建next数组和使用next数组都用到了前一位字符串的最长相等前后缀代码classSolution{public:voidgetNext(int*next,strings){intj=0;next[0]=0;for(inti=1;i0&&s[j]!=s[i]){j=next[j-1];}if(s[j]==s[i])j++;next[i]=j;}}intstrSt
夏末秋也凉
·
2025-02-10 06:14
力扣
#
字符串
leetcode
算法
【
力扣
】279.完全平方数
AC截图题目思路总结动态规划方程得出的思路找到最小子问题,涉及到当前数和上一个数的跨度,以及上一个数的结果如何变成当前数的结果这两个点。1,当前数n和上一个数的跨度:假设n=12,上一个数可以是11,11+1=12,OK;上一个数可以是8,因为8+4=12;上一个数可以是3,因为3+9=12;为什么11、8、3可以?因为题目要求是完全平方数相加。只有11加上1(11),8+4(22),3+9(3*
睡不着还睡不醒
·
2025-02-10 05:13
leetcode
leetcode
算法
职场和发展
【代码随想录|子序列系列300,674,718】
300.最长递增子序列题目链接:300.最长递增子序列-
力扣
(LeetCode)1.dp数组的含义dp[i]:以nums[i]结尾的最长递增子序列的长度2.递推公式if(nums[i]>nums[j])
mazo_command
·
2025-02-09 12:07
算法
链表-删除倒数第n个节点
代码随想录-刷题笔记19.删除链表的倒数第N个结点-
力扣
(LeetCode)内容:本题思路比较直接,也没太多好说的,既然是倒数第n个节点,那么设置一个fast领先slown个节点,当fast到达末尾节点的时候
Hasno.
·
2025-02-08 15:35
链表
数据结构
Redis(三):常见数据类型:List、Set、Zset
在Redis中,可以对列表两端插⼊(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定索引下标的元素等列表是⼀种⽐较灵活的数据结构,它可以充当
栈和队列
的⻆⾊,在实际开发上有很多应⽤场景Redis
我可是ikun啊
·
2025-02-08 14:23
Redis
redis
数据库
缓存
栈和队列
的实现(C语言)
1:栈1:概念和结构栈:一种特殊的线性表,其只运行在固定的一段进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守先进后出的原则。压栈:在栈里面插入元素出栈:在栈里面删除元素2:栈的实现1:stack.h#pragmaonce#include#include#include#include//支持动态增长的栈typedefintSTDataType;ty
思麟呀
·
2025-02-08 10:26
数据结构
c语言
学习
力扣
77题组合
77.组合难度:中等标签:回溯算法给定两个整数n和k,返回1…n中所有可能的k个数的组合。示例:输入:n=4,k=2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]思路:1.动手写一下,是如何组合的,然后可以发现,可以类似一棵树,选择一个数,往下,继续选择下一个数,直到选择了k个数,2.选择一个数,可以用一个栈来存储,返回时,需要删除这个数,寻找下一个,回溯的思想
zzxdddd
·
2025-02-08 10:25
力扣
组合总和(
力扣
39)
这道题又在之前的基础上进行了变形。递归是在一个集合里进行,但每次递归我们可以选择重复的数字,这代表递归时不需要缩小集合范围。但是组合的无序性仍要考虑,所以每一层for循环的起始值还是需要用变量控制。另外,我们可以事先对元素排个序,因为此题需要求和并与目标值进行比较。通过排序,我们就可以进行剪枝操作,提高效率。大家可以结合我下面的代码及详细注释理解。代码及详细注释如下:classSolution{p
qy发大财
·
2025-02-08 10:54
leetcode
算法
职场和发展
组合总和II(
力扣
40)
这道题的难点就在于题目所给的集合中有重复的数字,我们需要进行去重操作。首先明确去重指的是去重哪一部分。注意并不是对递归的集合去重,而是对当前集合的遍历进行去重。这么说可能有点抽象,举个例子:假设集合为1,1,2,3,4,我们第一次选1,递归集合时,我们仍可以选择第二个1。但是在第一次选第二个1时,在往下选,就会出现很多与第一次选第一个1时相同的组合。所以在每一层递归函数的for循环中我们需要进行去
qy发大财
·
2025-02-08 10:54
leetcode
算法
职场和发展
力扣
LeetCode #77 组合(Combine)
-题目描述给定两个整数n和k,返回1…n中所有可能的k个数的组合。来源:LeetCode-示例示例:输入:n=4,k=2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]-思路分析回溯+剪枝,列举所有情况即可。这道题很容易可以用回溯得到所有答案,但如果不剪枝,效率很低。这里剪枝主要是通过观察发现:如果剩下的元素加起来都没有kkk个,是不可能有满足条件的组合的。k>c
苏志林的情敌
·
2025-02-08 09:23
剪枝
算法
leetcode
回溯
java
力扣
刷题组合问题总结(回溯)
77.组合给定两个整数n和k,返回范围[1,n]中所有可能的k个数的组合。你可以按任何顺序返回答案。classSolution{private:vector>result;//存放符合条件结果的集合vectorpath;//用来存放符合条件结果voidbacktracking(intn,intk,intstartIndex){if(path.size()==k){result.push_back(
weixin_46213145
·
2025-02-08 09:22
leetcode
剪枝
深度优先
算法
c++
电话号码的字母组合(
力扣
17)
题目描述题目链接:
力扣
https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合
岳麓山脚一大叔
·
2025-02-08 09:19
零基础算法
leetcode
算法
力扣
算法题经典(两数之和、排列组合)-python
1.两数之和-
力扣
(LeetCode)三数之和,找出所有和为0且不重复的三元组。先排序,用for循环,双指针,while。15.三数之和-
力扣
(LeetCode)最接近的三数之和。
渣渣zheng
·
2025-02-08 09:48
leetcode刷题
leetcode
算法
python
力扣
77. 组合
题目链接考点:dfs提议:1-n中取k个数,输出所有组合数的可能classSolution{public:vector>combine(intn,intk){dfs(temp,n,k,0);returnans;}private:vector>ans;vectortemp;voiddfs(vector&temp,intn,intk,intx){if(temp.size()==k){ans.push_
计算机学弱驴
·
2025-02-08 09:47
力扣基础题
组合问题--
力扣
第77题
第77题.组合给定两个整数n和k,返回1…n中所有可能的k个数的组合。示例:输入:n=4,k=2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]思路:使用回溯算法,LinkedListpath:来存储路径Listres:存储结果backtrack(intn,intk,intstart):递归函数(path.size()==k:单层递归结束条件,也是res收集结果条
天忍哥哥
·
2025-02-08 09:45
回溯算法
leetcode
java
算法
20210622
力扣
第77题:组合(java)
示例:输入:n=4,k=2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]来源:
力扣
(LeetCode)链接:https://leetcode-cn.com/problems
今天炒饭有点咸
·
2025-02-08 09:14
Leetcode
算法
leetcode
数据结构
力扣
有效的括号
括号匹配问题,找到符合的进行抵消。题目从题可以看出是嵌套的括号先匹配先做抵消,类似就近原则,这也是栈的典型例题。可以通过枚举多种不同的情况慢慢用if与else做返回。时间复杂度:O(n),其中n是字符串的长度。空间复杂度:O(n),主要来自栈的空间。classSolution{publicbooleanisValid(Strings){Stackstack=newStackstack=newSta
孑么
·
2025-02-08 07:29
力扣
leetcode
算法
职场和发展
java
3.
力扣
——无重复字符的最长子串(总结)
一个
力扣
的题目:给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。示例1:输入:s="abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",所以其长度为3。
luodehate
·
2025-02-08 07:28
算法
最小移动总距离 -
力扣
dp,N - Nunchucks Shop 组合数求不回文的排列,D - Yet Another Problem map记录前缀和的位置
N-NunchucksShop组合数求不回文的排列可以发现对于每个iusingnamespacestd;#defineendl'\n'#defineintlonglong//constintmod=1e9+7;constintinf=1e18;constintN=1e7+100;inta[55][55];intc[55][55];signedmain(){//ios::sync_with_stdi
killer_queen4804
·
2025-02-08 00:15
总结
算法
c++
c++
算法
开发语言
【数据结构-Trie树】
力扣
677. 键值映射
设计一个map,满足以下几点:字符串表示键,整数表示值返回具有前缀等于给定字符串的键的值的总和实现一个MapSum类:MapSum()初始化MapSum对象voidinsert(Stringkey,intval)插入key-val键值对,字符串表示键key,整数表示值val。如果键key已经存在,那么原来的键值对key-value将被替代成新的键值对。intsum(stringprefix)返回所
hlc@
·
2025-02-07 22:35
数据结构
精选
数据结构
leetcode
算法
栈和队列
(C语言)
获得栈中有效元素个数6)检测栈是否为空7)销毁栈数据结构之队列定义实现方式基本功能实现1)定义,初始化队列2)入队3)出队4)获得队列头部元素5)获得队尾元素6)队列元素个数7)队列是否为空8)销毁队列
栈和队列
练习
半桔
·
2025-02-07 22:00
数据结构
c语言
c++
git
开发语言
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他