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
————算法训练————
代码随想录
算法训练
营第二十六天(回溯算法篇)|39. 组合总和,40. 组合总和Ⅱ
39.组合总和题目链接:39.组合总和-力扣(LeetCode)题目内容:给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形式返回。你可以按任意顺序返回这些组合。candidates中的同一个数字可以无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。思路:和之前的组合那
为什么不能重用户名
·
2023-12-16 03:55
代码随想录训练营
算法
数据结构
python
2022-09-27
算法训练
Day7
今日任务day6454.四数相加II383.赎金信15.三数之和18.四数之和总结(一)454.四数相加II
海狸攻城狮
·
2023-12-16 01:33
d代码随想录
算法训练
营15期 Day 15 | 层序遍历 10 、226.翻转二叉树、101.对称二叉树 2
层序遍历看完本篇可以一口气刷十道题,试一试,层序遍历并不难,大家可以很快刷了十道题。本题的思路比较简单,第二遍看的时候肯定会忘记。题目链接:102:层序遍历力扣/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr)
ASDWYang
·
2023-12-16 00:37
数据结构
代码随想录
算法训练
营15期 Day 16 | 104.二叉树的最大深度、559.n叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数
104.二叉树的最大深度什么是深度,什么是高度,如何求深度,如何求高度,这里有关系到二叉树的遍历方式。深度是前序遍历,从上往下走;高度是后序遍历,从下往上走,深度为最大高度。思路:本题的关键是使用高度的方式返回相应的深度,经过几次后序遍历,然后直接返回相应的最大高度就是相应的深度。题目链接:力扣/***Definitionforabinarytreenode.*structTreeNode{*in
ASDWYang
·
2023-12-16 00:37
算法
数据结构
代码随想录
算法训练
营 | day48 动态规划 198.打家劫舍,213.打家劫舍Ⅱ,337.打家劫舍Ⅲ
刷题198.打家劫舍题目链接|文章讲解|视频讲解题目:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下,一夜之内能够偷窃到的最高金额。示例1:输入:[1,2,3,1]输出:4解释:偷窃1号房屋
小周今天学习了吗
·
2023-12-16 00:43
java刷题记录
算法
动态规划
java
leetcode
算法训练
营Day13
#二叉树#数据结构#Java开源学习资料二叉树理论基础篇在数据结构中,二叉树是非常重要的一个章节。这里总结一下二叉树的基础概论:二叉树是一种树状数据结构,每个节点最多有两个子节点,分别为左子节点和右子节点。它具有以下特性:1.根节点:树的顶部节点,没有父节点。2.子节点:每个节点最多有两个子节点。3.叶节点:没有子节点的节点称为叶节点。4.深度:根节点到任意节点的唯一路径长度称为深度。5.高度:从
momolinshaomo
·
2023-12-15 20:29
算法
算法训练
营Day14
#Java#二叉树层次遍历#反转二叉树开源学习资料二叉树的层次遍历:力扣题目链接二叉树的层次遍历很好理解:就是从根结点一层一层地往下遍历(同一层,从左到右):迭代的方式很好理解:就是依次入队出队。但是判断条件怎么写?最需要解决的就是,要把节点依次入队,那要怎么记录这些节点,防止它们丢失。第一步把根节点先入队,这时候要想让它的左孩子和右孩子入队(如上图),就要在A出队的时候,记录它。关键的就是在一个
momolinshaomo
·
2023-12-15 20:29
算法
算法训练
营Day15
#Java#递归开源学习资料Feelingandexperience:今日主要练习递归,深入理解递归:二叉树的最小深度:力扣题目链接昨天对此题也做了练习与解答,用到的是层序遍历的解法。今天用递归来解答:/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNod
momolinshaomo
·
2023-12-15 20:29
算法
算法训练
营Day11
#Java#栈和队列开源学习资料Feelingandexperiences:有效的括号:力扣题目链接对于这个处理字符,括号匹配的问题,在学习数据结构中也遇到过。数据结构中的做法就是模拟栈,利用栈先进后出的特点。以下是我第一次写所遇到的问题:classSolution{publicbooleanisValid(Strings){//先创建一个栈,来进行辅助操作Stackstack=newStacks
momolinshaomo
·
2023-12-15 20:28
算法
算法训练
营Day8
#Java#字符串开源学习资料Feelingandexperiences:反转字符串:力扣题目链接该题目出奇的简单,写完之后一度反复看题目,是否是有遗漏的条件。再扩展一下,做这类题的时候,首先想到的就是相向双指针进行首尾交换。同样,在Java的API的Arrays类中有reverse方法,可以使得数组或者是集合,让内部元素进行反转。代码如下,简单的while循环:classSolution{pub
momolinshaomo
·
2023-12-15 20:58
算法
算法训练
营Day9
#JAVA#REVIEW开源学习资料Feelingandexperiences:今日复习之前的知识,双指针的用法根据代码来复习与回顾:移除元素:给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。classSoluti
momolinshaomo
·
2023-12-15 20:58
算法
leetcode
数据结构
算法训练
营Day10
#数据结构#队列#栈开源学习资料Feelingandexperiences:队列与栈的理论基础:在初学完数据结构以后,我对栈和队列的底层只有一个初步的认知:队列(Queue)和栈(Stack)都是数据结构中的逻辑结构,它们描述了元素之间的相对关系而不涉及具体的物理存储。队列(先进先出):类比于现实生活中的排队,先来的排最前面,完事后第一个出列。栈(先进后出):类比于叠盘子,叠好后,最面上的盘子是最
momolinshaomo
·
2023-12-15 20:28
算法
算法训练
营Day16
#Java#二叉树开源学习资料Feelingandexperiences:平衡二叉树:力扣题目链接给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。题目要求的是每个节点,这样就想到了把问题分为多个子问题,利用递归来解。注意:高度和深度的区别:1.高度(Height):•高度通常是指从一个节点到其最远叶子节点的最
momolinshaomo
·
2023-12-15 20:47
算法
我在代码随想录
算法训练
营写代码之704二分查找、27移除元素
第一题704二分查找题目如下:一刷:题目思路分析:我设置了i代表区间范围的左边界,设置j为区间范围内的右边界,由于一开始我不知道判断我们要查找的值是否在区间内,然后我就设置了mid代表我们要返回的值,然后进入循环去不断去缩小区间,mid我们的中间值。为什么要用mid=(j-i)/2+i而不用mid=(j+i)/2?其实后者可能越界,用mid=(j-i)/2+i可以避免越界的风险,然后就是我们if的
2c237c6
·
2023-12-15 15:03
算法
算法训练
营Day16(二叉树)
今日内容:104.二叉树的最大深度559.n叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数迭代法,大家可以直接过,二刷有精力的时候再去掌握迭代法。104.二叉树的最大深度104.二叉树的最大深度-力扣(LeetCode)深度与高度深度是往下数,前序遍历高度是往上数,后续遍历这道题我用后续遍历求根节点的高度,也就等于最大深度了。前序遍历求最大深度,涉及到回溯的知识,后续二刷学完回
不吃青椒!
·
2023-12-15 07:01
算法
算法训练
营Day12
#Java#Review开源学习资料Feelingandexperiences:滑动窗口最大值:力扣题目链接给定一个数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。目前为止出现的第一道Hard。最开始想到的就是暴力解法,而且很容易能写出来classSolution{publicint[]
momolinshaomo
·
2023-12-15 07:51
算法
代码随想录
算法训练
营第五十二天 _ 动态规划_300. 最长递增子序列、674.最长连续递增序列、718.最长重复子数组。
学习目标:动态规划五部曲:①确定dp[i]的含义②求递推公式③dp数组如何初始化④确定遍历顺序⑤打印递归数组----调试引用自代码随想录!60天训练营打卡计划!学习内容:300.最长递增子序列动态规划五步曲:①确定dp[i]的含义:以nums[i]为尾的最长的递增子序列的长度②求递推公式:dp[i]=max(dp[j]+1,dp[i])③dp数组如何初始化:dp[i]=1(因为在判断后才会为dp赋
Josue?
·
2023-12-14 21:07
刷题训练心得
算法
动态规划
代码随想录
算法训练
营第四十四天 _ 动态规划_完全背包问题、518.零钱兑换II、377.组合总和IV。
学习目标:动态规划五部曲:①确定dp[i]的含义②求递推公式③dp数组如何初始化④确定遍历顺序⑤打印递归数组----调试引用自代码随想录!60天训练营打卡计划!学习内容:完全背包问题–二维dp数组动态规划五步曲:①确定dp[i][j]的含义:任取[0,i]的物品(可重复使用)后放进容量为j的背包所能放的最大价值②求递推公式:dp[i][j]=Math.max(dp[i-1][j],dp[i][j-
Josue?
·
2023-12-14 21:37
刷题训练心得
算法
动态规划
代码随想录
算法训练
营第五十天 _ 动态规划_188.买卖股票最佳时机4、309.买卖股票的最佳时机含冷冻期、714.买卖股票的最佳时机含手续费。
学习目标:动态规划五部曲:①确定dp[i]的含义②求递推公式③dp数组如何初始化④确定遍历顺序⑤打印递归数组----调试引用自代码随想录!60天训练营打卡计划!学习内容:188.买卖股票最佳时机4只能至多买卖k次且不能同时参与多笔交易。动态规划五步曲:①确定dp[i]的含义:第i天不操作的最大金额dp[i][0],第i天第一次持有这个股票的最大金额dp[i][1],第i天第一次不持有这个股票的最大
Josue?
·
2023-12-14 21:06
刷题训练心得
算法
动态规划
算法训练
营Day14(二叉树)
理论基础这里的话,学的也不少,就是注意一下java中容器的支持吧,hashMap这里,jdk8以后是hash表数组+链表转红黑树的方式,这里的话采用的红黑树是完全二叉树的一种另外优先级队列PriorityQueue是一个二叉堆,也是完全二叉树的一种。二叉树的遍历方式:广度优先:层序遍历深度优先:前中后另外还有递归遍历和非递归遍历(叫做迭代法)【因为递归的本质也是栈】TreeMap这里好就是单纯的二
不吃青椒!
·
2023-12-14 14:54
算法
哈希算法
算法训练
营Day1(数组)
语言采用的Java语言,一些分析也是用于Java,请注意。数组理论基础开源地址代码随想录(programmercarl.com)我的认识数组的特点是在内存空间上连续且数据类型一样。数组知道下标,get(index)时的时间复杂度为O(1),但并不意味着它寻找某个元素是O(1),而是O(n){不采用一些算法遍历去寻找的话}正由于数组在内存空间上是连续的,所以必须在增加、删除元素的时候,移动其他元素来
不吃青椒!
·
2023-12-14 14:53
算法
算法
算法训练
营Day13(栈队列)
239.滑动窗口最大值(一刷至少需要理解思路)239.滑动窗口最大值-力扣(LeetCode)这道题用到了双端队列既可以做队列也可以做栈队列相关操作poll:弹出队头元素peek:查看队头add:队尾添加元素removeLast:删除队尾元素解题思路:23516单调队列,push操作的时候,val和最后一个元素比,大的话,就循环移除last比如2push3>23push5>35push11移除16
不吃青椒!
·
2023-12-14 14:53
算法
java
leetcode
算法训练
营Day11(栈)
20.有效的括号20.有效的括号-力扣(LeetCode)这道题没看卡哥的视频,我认为我的方法更好一些。classSolution{publicbooleanisValid(Strings){Stackstack=newStackstack=newStackstack=newStackstack=newStack<>();for(Strings:tokens){if(s.equals("+")||
不吃青椒!
·
2023-12-14 14:23
算法
算法训练
营Day15(二叉树)
层序遍历102.二叉树的层序遍历-力扣(LeetCode)核心理解size存放的是当前这一层的,poll出来的时候,孩子可以放进去。但是这一层做的时候是通过szie判断这一层的,比如size==1,那就放到subRes,此时孩子节点也进去了,但是是size控制这一层的结果,加入res,进入下一循环。(核心就是:弹出去一个就把孩子加到队列,通过size判断是这一层要弹出哪些。)classSoluti
不吃青椒!
·
2023-12-14 13:36
算法
代码随想录
算法训练
营第四十二天|背包问题理论基础、01背包理论基础(滚动数组)、416. 分割等和子集
代码随想录
算法训练
营第四十二天|背包问题理论基础、01背包理论基础(滚动数组)、416.分割等和子集背包问题理论基础背包问题理论基础文章讲解:https://programmercarl.com/%E8%
老程序员学习算法
·
2023-12-14 13:49
算法
代码随想录
算法训练
营第31天|● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和
455.分发饼干简单假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值gi这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸sj。如果s[j]>=g[i],我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例1:输入:g=[1,2,3],s=[1,1]输出
嗝~~~~
·
2023-12-14 13:45
代码随想录
算法
数据结构
leetcode
【代码随想录
算法训练
营-第四天】【链表】24,19, 面试题 02.07,142
24.两两交换链表中的节点第一遍-递归-小看了一下题解思路:读了两遍题目才理解…相邻节点的交换,这个操作很容易实现,但需要一个tmpNode因为是链表的题目,没开始思考之前先加了dummyNode,还真管用把dummyNode作为了最后返回用的,以及新增preNode作为tmpNode用递归写是因为不想用循环了…感觉递归写起来好玩一些小看了一下题解的地方:(其实再给自己多一些debug的次数应该也
不熬夜的靓仔
·
2023-12-14 13:14
代码随想录-力扣刷题
算法
链表
数据结构
【代码随想录
算法训练
营-第二天】【数组】977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
977.有序数组的平方看完思路后一遍AC思路剖析:因为提到了时间复杂度为O(n),自然想到只能遍历一遍又因为只规定了时间复杂度,但是没有规定空间复杂度,所以可以考虑在定义一个数组【这一步没有考虑出来,是看了思路的】因为前一天做了二分查找,其实是考虑到使用双指针的思想,也在用这个思路思考,但是一直想着在同一个数组之内排序,没有想到重新定一个空的数组;classSolution{publicint[]
不熬夜的靓仔
·
2023-12-14 13:43
代码随想录-力扣刷题
算法
java
【代码随想录
算法训练
营-第三天】【链表】203,707,206
203.移除链表元素一遍AC没什么难度,记住如何定义、使用链表,链表中的节点;记住链表移除的操作代码;了解虚拟头节点的用法;classSolution{publicListNoderemoveElements(ListNodehead,intval){if(head==null){returnhead;}ListNodedummyNode=newListNode(-1,head);ListNode
不熬夜的靓仔
·
2023-12-14 13:43
代码随想录-力扣刷题
算法
链表
数据结构
【代码随想录
算法训练
营-第六天】【哈希表】242,349,202,1
242.有效的字母异位词第一遍思考比较简单,用数组就能实现了classSolution{publicbooleanisAnagram(Strings,Stringt){int[]checkListi=newint[256];int[]checkListj=newint[256];for(inti=0;iset1=newHashSetset2=newHashSetset1=newHashSet0){
不熬夜的靓仔
·
2023-12-14 12:52
代码随想录-力扣刷题
算法
散列表
数据结构
代码随想录
算法训练
营第28天|● 93.复原IP地址 ● 78.子集 ● 90.子集II
93.复原IP地址已解答中等相关标签相关企业有效IP地址正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用‘.’分隔。例如:“0.1.2.201”和“192.168.1.1”是有效IP地址,但是“0.011.255.245”、“192.168.1.312”和“
[email protected]
”是无效IP地址。给定一个只包含数字的字符串s,用以表示一个IP地址,返回所有可能的有效I
嗝~~~~
·
2023-12-06 17:52
代码随想录
算法
代码随想录
算法训练
营第29天|* 491.递增子序列 * 46.全排列 * 47.全排列 II
491.递增子序列-子集已解答中等相关标签相关企业给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中至少有两个元素。你可以按任意顺序返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。示例1:输入:nums=[4,6,7,7]输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7]
嗝~~~~
·
2023-12-06 17:18
代码随想录
算法
代码随想录
算法训练
营第五十六天|583. 两个字符串的删除操作、72. 编辑距离
可见前一篇blog中1143.最长公共子序列思路代码随想录
算法训练
营第五十三天|1143.最长公共子序列、1035.不相交的线、53.最大子数组和-
Keponcod
·
2023-12-06 13:21
算法
leetcode
动态规划
c++
算法训练
Day56: 583. 两个字符串的删除操作 72. 编辑距离
文章目录两个字符串的删除操作题解编辑距离题解两个字符串的删除操作CategoryDifficultyLikesDislikesContestSlugProblemIndexScorealgorithmsMedium(66.47%)5780--0TagsCompanies给定两个单词word1和word2,返回使得word1和word2相同所需的最小步数。每步可以删除任意一个字符串中的一个字符。示例
泷fyk
·
2023-12-06 13:50
动态规划
算法训练
算法
代码随想录
算法训练
营 ---第五十六天
今天同样是动态规划:编辑距离问题!第一题:简介:本题有两个思路:1.求出最长公共子串,然后返还word1.length()+word2.length()-2*dp[word1.size()][word2.size()]本思路解法与求最长公共子串相同,只是返还结果不同代码实现:intminDistance(stringword1,stringword2){vector>dp(word1.size()
Gemn 1
·
2023-12-06 03:54
算法
代码随想录
算法训练
营 ---第五十二天
第一题:简介:动态规划五部曲:1.确定dp数组下标的定义dp[i]到达i时最长递增子序列的长度2.确定递推公式我们确定当前的最大长度需要遍历前面所有的最大长度,然后如果序列最后一个值小于nums[i]那就dp[j]+1;然后不断遍历保持最大。if(nums[i]>nums[j])dp[i]=max(dp[i],dp[j]+1);3.初始化dp数组vectordp(nums.size(),1);因为
Gemn 1
·
2023-12-06 03:24
算法
代码随想录
算法训练
营 ---第五十三天
第一题:简介:本题和昨天的最大重复子串问题很相似,只不过本题不一定是连续的。动规五部曲分析如下:确定dp数组(dptable)以及下标的含义dp[i][j]:长度为i-1的字符串text1与长度为j-1的字符串text2的最长公共子序列长度为dp[i][j]定义为i-1或j-1是为了代码实现方便2.确定递推公式主要就是两大情况:text1[i-1]与text2[j-1]相同,text1[i-1]与
Gemn 1
·
2023-12-06 03:24
算法
代码随想录
算法训练
营 ---第五十五天
今天是动态规划:编辑距离问题。第一题:简介:动态规划五部曲:1.确定dp数组的含义dp[i][j]表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]。2.确定递推公式两种情况:1.s[i-1]==t[j-1]dp[i][j]=dp[i-1][j-1]+12.s[i-1]!=t[j-1]不相等所以我们要模拟删除此元素,相当于长度不变继承前面的长度或理
Gemn 1
·
2023-12-06 03:53
算法
算法训练
DAY46LeetCode139.单词拆分
139.单词拆分classSolution{public:boolwordBreak(strings,vector&wordDict){unordered_setset(wordDict.begin(),wordDict.end());vectordp(s.size()+1,false);dp[0]=true;for(inti=1;i
Don Vito Corleone512
·
2023-12-05 16:23
算法
Day75x.
算法训练
23.合并K个升序链表/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}*ListNode(intval){this.val=val;}*ListNode(intval,ListNodenext){this.val=val;this.next=next;}*}*/cl
EVE(伊娃)
·
2023-12-05 16:53
算法
Day61.
算法训练
206.反转链表/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}*ListNode(intval){this.val=val;}*ListNode(intval,ListNodenext){this.val=val;this.next=next;}*}*/class
EVE(伊娃)
·
2023-12-05 16:53
算法
Day62.
算法训练
718.最长重复子数组classSolution{publicintfindLength(int[]nums1,int[]nums2){intmax=0;int[][]dp=newint[nums1.length][nums2.length];for(inti=0;imax){max=dp[i][j];}}}}//for(int[]ints:dp){//System.out.println(Arr
EVE(伊娃)
·
2023-12-05 16:53
算法
leetcode
Day63.
算法训练
3.无重复字符的最长子串classSolution{publicintlengthOfLongestSubstring(Strings){char[]chars=s.toCharArray();intmax=0;Mapmap=newHashMap=10){carry=1;sum=sum-10;}else{carry=0;}p3.next=newListNode(sum);p1=p1.next;p2
EVE(伊娃)
·
2023-12-05 16:53
算法
Day73x.
算法训练
337.打家劫舍III/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){}*TreeNode(intval){this.val=val;}*TreeNode(intval,TreeNodeleft,TreeNoderight){*this.va
EVE(伊娃)
·
2023-12-05 16:23
算法
Day27.
算法训练
77.组合classSolution{List>result=newArrayList>combine(intn,intk){combine(n,k,1,newArrayListpath){if(path.size()==k){result.add(newArrayList=k-path.size());i++){path.add(i);combine(n,k,i+1,path);path.rem
EVE(伊娃)
·
2023-12-05 16:22
leetcode
算法
数据结构
Day60.
算法训练
912.排序数组归并排序classSolution{publicint[]sortArray(int[]nums){intlo=0;inthi=nums.length-1;int[]assist=newint[nums.length];sortArray(nums,assist,lo,hi);returnnums;}privatevoidsortArray(int[]nums,int[]assis
EVE(伊娃)
·
2023-12-05 16:18
算法
代码随想录
算法训练
营第十天| LeetCode459.重复的子字符串
459.重复的子字符串题目:459.重复的子字符串////暴力解法超时O(N^2),需要剪枝操作classSolution{public:boolisrepeat(string&s,string&son){for(intj=0;j0&&s[i]!=s[j]){j=next[j-1];}if(s[i]==s[j]){j++;}next[i]=j;}}boolrepeatedSubstringPatt
冰冰的coco
·
2023-12-05 15:06
代码随想录算法训练营
算法
leetcode
字符串
KMP
代码随想录
算法训练
营第23天|● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树 ● 总结篇
108.将有序数组转换为二叉搜索树简单给你一个整数数组nums,其中元素已经按升序排列,请你将其转换为一棵高度平衡二叉搜索树。高度平衡二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过1」的二叉树。示例1:[图片]输入:nums=[-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9]也将被视为正确答案:[图片]示例
嗝~~~~
·
2023-12-04 18:41
代码随想录
算法
数据结构
代码随想录
算法训练
营第24天|● 理论基础 ● 77. 组合
77.组合已解答中等相关标签相关企业给定两个整数n和k,返回范围[1,n]中所有可能的k个数的组合。你可以按任何顺序返回答案。示例1:输入:n=4,k=2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]示例2:输入:n=1,k=1输出:[[1]]提示:1<=n<=201<=k<=n代码funccombine(nint,kint)[][]int{tmp,res:=m
嗝~~~~
·
2023-12-04 18:41
代码随想录
算法
代码随想录
算法训练
营第25天|● 216.组合总和III ● 17.电话号码的字母组合
216.组合总和III已解答中等相关标签相关企业找出所有相加之和为n的k个数的组合,且满足下列条件:只使用数字1到9每个数字最多使用一次返回所有可能的有效组合的列表。该列表不能包含相同的组合两次,组合可以以任何顺序返回。示例1:输入:k=3,n=7输出:[[1,2,4]]解释:1+2+4=7没有其他符合的组合了。示例2:输入:k=3,n=9输出:[[1,2,6],[1,3,5],[2,3,4]]解
嗝~~~~
·
2023-12-04 18:41
代码随想录
算法
深度优先
数据结构
上一页
30
31
32
33
34
35
36
37
下一页
按字母分类:
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
其他