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
————算法训练————
代码随想录
算法训练
61 | 总结篇
前面60天的刷题大概是按照如下类型来刷:数组->链表->哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->单调栈。每道题目都是精心筛选,都是经典题目高频面试题。并且,每个专题开始都有理论基础篇,并不像是教科书般的理论介绍,而是从实战中归纳需要的基础知识。每个专题结束都有总结篇,是这个专题的归纳总结。一刷最大的进步和收获便是初步构建起了完整的算法知识体系,后面要坚持二刷与三刷。数组数
纽北KING
·
2024-01-30 00:27
LeetCode刷题训练
算法
数据结构
链表
贪心算法
动态规划
leetcode
散列表
代码随想录
算法训练
营day4 | 链表(2)
一、LeetCode24两两交换链表中的节点题目链接:24.两两交换链表中的节点https://leetcode.cn/problems/swap-nodes-in-pairs/思路:设置快慢指针,暂存节点逐对进行交换。代码优化前:/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListN
橙南花已开
·
2024-01-30 00:13
代码随想录算法训练营
算法
链表
数据结构
代码随想录
算法训练
营day3 | 链表 (1)
一、链表理论基础链表是一种通过指针串联在一起的线性结构,每个节点由两部分组成:数据域和指针域(指向下一个节点),最后一个节点的指针指向NULL(空指针)。--Carl链表性能分析:链表的Java定义:publicclassListNode{//结点的值intval;//下一个结点ListNodenext;//节点的构造函数(无参)publicListNode(){}//节点的构造函数(有一个参数)
橙南花已开
·
2024-01-30 00:12
代码随想录算法训练营
链表
数据结构
代码随想录
算法训练
营DAY6 | 哈希表(1)
DAY5休息一天,今天重启~哈希表理论基础:代码随想录Javahash实现:java哈希表-CSDN博客一、LeetCode242有效的字母异位词题目链接:242.有效的字母异位词思路:设置字典classSolution{publicbooleanisAnagram(Strings,Stringt){intslen=s.length(),tlen=t.length();if(slen!=tlen)
橙南花已开
·
2024-01-30 00:11
散列表
leetcode
数据结构
代码随想录
算法训练
营第一天| 704. 二分查找、27. 移除元素
Day1:二分法:第一种情况:区间左闭右闭情况左闭右闭区间的这种情况,主要左右边界的取值情况以及Mid的判断条件。classSolution{public:intsearch(vectornums,inttarget){intleft=0;intright=nums.size()-1;while(lefttarget)//目标值在中值左侧,需要更新右边界且排除了mid值{right=mid-1;}
在下雨599
·
2024-01-29 22:45
算法
leetcode
数据结构
代码随想录
算法训练
营第三天| 链表part1
203.移除链表元素:题目链接/文章讲解/视频讲解::代码随想录classSolution{publicListNoderemoveElements(ListNodehead,intval){ListNodedummy=newListNode(-1);dummy.next=head;ListNodecur=dummy;while(cur.next!=null){if(cur.next.val==v
白白白揍粽
·
2024-01-29 21:40
算法
链表
数据结构
代码随想录
算法训练
营第一天| 704. 二分查找、27. 移除元素
记录刷题Day1704.二分查找斜体样式了解了左闭右闭[left,right]和左闭右开[left,right)两种方式一、采用左闭右闭时,while条件中应遵从闭区间原则,为lefttarget):#target在[mid+1,right]范围内,mid一定不是target,所以直接取mid+1l=mid+1elif(nums[mid]target):#target在[middle+1,righ
枫林_panda
·
2024-01-29 21:10
算法
代码随想录
算法训练
营第三天 | 链表part01
链表节点的定义,一定要牢记//单链表structListNode{intval;//节点上存储的元素ListNode*next;//指向下一个节点的指针ListNode(intx):val(x),next(NULL){}//节点的构造函数};这里的构造函数非必需,但能方便我们定义新的链表节点1.创建一个链表节点:ListNode*head=newListNode(5);2.使用默认构造函数初始化节
MHX2
·
2024-01-29 21:09
算法
链表
数据结构
代码随想录
算法训练
营Day4 | 链表part02
24.两两交换链表中的节点leetcode链接代码随想录链接一刷状态:通过思路保存三个需要交互的节点,根据下方的逻辑交换即可。/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(n
锋_Feng
·
2024-01-29 21:39
算法
链表
数据结构
c++
leetcode
代码随想录
算法训练
营第四天-链表part2
day2和day3回家太晚,刷完题忘记写笔记了--!24.两两交换链表中的节点给自己的笔记:虚拟节点法是创建一个节点,它的next指针指向链表的头节点,这样便于:current指向虚拟节点,然后对链表进行操作交换最后返回头节点:returndummyNode.next#Definitionforsingly-linkedlist.#classListNode(object):#def__init_
枫林_panda
·
2024-01-29 21:07
算法
链表
数据结构
代码随想录
算法训练
营第十六天 | LeetCode104 二叉树的最大深度 LeetCode111 二叉树的最小深度 LeetCode222 完全二叉树的节点个数
LeetCode104二叉树的最大深度题目链接:二叉树的最大深度文章链接:二叉树的最大深度思路使用层序遍历是最为合适的,因为最大的深度就是二叉树的层数。代码classSolution{public:intmaxDepth(TreeNode*root){queueque;intdepth=0;if(root!=nullptr)que.push(root);while(!que.empty()){in
程序员劝退师_
·
2024-01-29 19:33
代码随想录
算法
数据结构
代码随想录
算法训练
营第十四天 | 二叉树理论基础 递归遍历 迭代遍历 统一迭代
二叉树理论基础文章链接:二叉树理论基础视频链接:二叉树理论基础二叉树的定义structTreeNode{intval;TreeNode*left;TreeNode*right;TreeNode(intx):val(x),left(NULL),right(NULL){}};二叉树的递归遍历视频链接:二叉树的递归遍历写递归的三要素:确定递归函数的参数和返回值确定终止条件确定单层递归的逻辑LeetCod
程序员劝退师_
·
2024-01-29 19:03
代码随想录
算法
代码随想录
算法训练
营第十五天 | 二叉树的层序遍历 LeetCode226 翻转二叉树 LeetCode101 对称二叉树
二叉树的层序遍历文章链接:二叉树的层序遍历视频链接:二叉树的层序遍历LeetCode102二叉树的层序遍历题目链接:二叉树的层序遍历视频链接:二叉树的层序遍历文章链接:二叉树的层序遍历思路利用队列这个数据结构来记录每一层遍历的元素,并记录在当前层时队列的大小,当前层元素出队,并让其左右孩子入队,更新队列的大小,恰好队列的大小就是当前层元素的个数,遍历这个队列时,只需要弹出队列大小个数的元素,弹出的
程序员劝退师_
·
2024-01-29 19:03
代码随想录
算法
代码随想录
算法训练
营第七天 | LeetCode454 四数相加Ⅱ LeetCode383 赎金信 LeetCode15 三数之和 LeetCode18 四数之和
LeetCode454四数相加Ⅱ题目链接:四数相加Ⅱ文章链接:四数相加Ⅱ视频链接:四数相加Ⅱ思路因为C++还在学习中,还没到set和map这里,所以就先看视频了。不过这题肯定有暴力的解法,就是用四个for循环遍历所有的情况,用count记录,然后count++,最终返回count即可,但时间复杂度是n的四次方,不太建议这么做。------------------------------------
程序员劝退师_
·
2024-01-29 19:02
代码随想录
算法
代码随想录
算法训练
营第六天 | LeetCode242 有效的字母异位词 LeetCode349 两个数组的交集 LeetCode202 快乐数 LeetCode1 两数之和
LeetCode242有效的字母异位词题目链接:有效的字母异位词文章链接:有效的字母异位词视频链接:有效的字母异位词思路因为C++还在学习中,没有到set和map这里,只能先看视频讲解了。但多多少少还有点思路,能否实现不清楚,思路是这样的:创建虚拟数组,遍历第一个字符串,记录每个元素出现的次数,放入虚拟数组中;同样创建另一个虚拟数组,遍历第二个字符串,记录每个元素出现的次数,放入该虚拟数组中。之后
程序员劝退师_
·
2024-01-29 19:32
代码随想录
算法
代码随想录
算法训练
营第十七天 | LeetCode110 平衡二叉树 LeetCode257 二叉树所有的路径 LeetCode404 左叶子之和
LeetCode110平衡二叉树题目链接:平衡二叉树文章链接:平衡二叉树视频链接:平衡二叉树思路一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。高度是指距离叶子节点的距离,深度是只距离根节点的距离。**求高度用后序遍历,求深度用前序遍历。**整体思路是求出左右子树的高度之差,并返回给父节点,判断该父节点是否是平衡二叉树,若所有节点都满足平衡二叉树,则该二叉树为平
程序员劝退师_
·
2024-01-29 19:31
代码随想录
算法
数据结构
代码随想录
算法训练
营Day42|0-1背包理论基础、416. 分割等和子集
目录0-1背包理论基础0-1背包问题二维dp数组01背包算法实现一维dp数组01背包编辑算法实现416.分割等和子集前言思路算法实现总结0-1背包理论基础0-1背包问题题目链接https://kamacoder.com/problempage.php?pid=1046有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解
张金卓2023
·
2024-01-29 19:48
算法
代码随想录
算法训练
营Day41|343. 整数拆分、96.不同的二叉搜索树
目录343.整数拆分前言思路算法实现96.不同的二叉搜索树前言思路算法实现总结343.整数拆分题目链接文章链接前言本题要使得整数拆分后的乘积最大,使用动态规划求解难在递推公式的推导。思路利用动态规划五部曲来进行实现:1.确定dp数组以及下标的含义:dp[i]:拆分数字i,可以得到的最大乘积为dp[i]。2.确定递推公式:思考dp[i]最大乘积是如何得到的?一种是j*(i-j)直接相乘,另一种是j*
张金卓2023
·
2024-01-29 19:17
算法
代码随想录
算法训练
营Day39|62.不同路径、63. 不同路径 II
目录62.不同路径思路算法实现63.不同路径II前言思路算法实现总结62.不同路径题目链接文章链接思路机器人从(0,0)位置出发,到(m-1,n-1)终点。依旧按照动态规划五部曲来进行:1.确定dp数组以及下标的含义:由于题目给的是mXn的网格,因此可以创建二维数组dp[i][j],dp[i][j]:表示从(0,0)出发,到(i,j)有dp[i][j]条不同的路径;2.确定递推公式:要求dp[i]
张金卓2023
·
2024-01-29 19:16
算法
代码随想录
算法训练
营29期Day32|LeetCode 122,55,45
文档讲解:买卖股票的最佳时机II跳跃游戏跳跃游戏II122.买卖股票的最佳时机II题目链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/description/思路:这题很简单,是要求我们买卖股票,然后算最多赚多少。我们可以意识到这样一件事:我们连续几天买卖股票赚的钱,其实就是我们每天赚的钱加起来就行。所以我们这道
tlingyuqi
·
2024-01-29 14:26
代码随想录算法训练营29期
算法
leetcode
职场和发展
c++
算法训练
|动态规划之背包问题复习
背包问题分类:(主要分为两类)一:01背包:给一个数组或者容器,容器中的数据只能使用一次,问装满背包的最大价值为多少。二:完全背包:给一个数组或者容器,容器中的数据可无限使用,问装满背包的最大价值为多少。不一定是问装满背包的最大价值是多少,这只是一个通用的说法01背包:01背包又分为两种方法:二维数组和一维数组。(动态规划数组用dp表示,重量数组为weight,很多题目物品重量同时也是物品的价值)
zhangke_EX
·
2024-01-29 14:21
算法
动态规划
算法训练
|下一个排列
31.下一个排列-力扣(LeetCode)总结:能读懂题目的意思,但是不知道如何下手题解以及解法:1、我们需要将一个左边的「较小数」与一个右边的「较大数」交换,以能够让当前排列变大,从而得到下一个排列。2、同时我们要让这个「较小数」尽量靠右,而「较大数」尽可能小。当交换完成后,「较大数」右边的数需要按照升序重新排列。这样可以在保证新排列大于原来排列的情况下,使变大的幅度尽可能小。以排列[4,5,2
zhangke_EX
·
2024-01-29 14:16
算法
代码随想录
算法训练
营day15|226.翻转二叉树、101.对称二叉树
层序遍历看完本篇可以一口气刷十道题,试一试,层序遍历并不难,大家可以很快刷了十道题。题目链接/文章讲解/视频讲解:代码随想录226.翻转二叉树(优先掌握递归)这道题目一些做过的同学理解的也不够深入,建议大家先看我的视频讲解,无论做过没做过,都会有很大收获。题目链接/文章讲解/视频讲解:代码随想录101.对称二叉树(优先掌握递归)先看视频讲解,会更容易一些。题目链接/文章讲解/视频讲解:代码随想录T
万事大吉CC
·
2024-01-29 02:23
代码随想录
数据结构
代码随想录
算法训练
营29期|day31 任务以及具体安排
理论基础关于贪心算法,你该了解这些!题目分类大纲如下:#算法公开课《代码随想录》算法视频公开课(opensnewwindow):贪心算法理论基础!(opensnewwindow),相信结合视频再看本篇题解,更有助于大家对本题的理解。#什么是贪心贪心的本质是选择每一阶段的局部最优,从而达到全局最优。这么说有点抽象,来举一个例子:例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?指定
-源潮-
·
2024-01-29 00:36
算法
leetcode
数据结构
java
代码随想录
代码随想录
算法训练
营29期|day30 任务以及具体安排
332.重新安排行程classSolution{privateLinkedListres;privateLinkedListpath=newLinkedListfindItinerary(List>tickets){Collections.sort(tickets,(a,b)->a.get(1).compareTo(b.get(1)));path.add("JFK");boolean[]used=
-源潮-
·
2024-01-29 00:35
算法
数据结构
leetcode
java
代码随想录
算法训练
营29期|day30 任务以及具体安排 回溯总结篇
回溯总结篇#回溯法理论基础转眼间「代码随想录」(opensnewwindow)里已经分享连续讲解了21天的回溯算法,是时候做一个大总结了,本篇高能,需要花费很大的精力来看!关于回溯算法理论基础,我录了一期B站视频带你学透回溯算法(理论篇)(opensnewwindow)如果对回溯算法还不了解的话,可以看一下。在关于回溯算法,你该了解这些!(opensnewwindow)中我们详细的介绍了回溯算法的
-源潮-
·
2024-01-29 00:35
算法
数据结构
leetcode
java
代码随想录
算法训练
营29期|day 11 任务以及具体安排
20.有效的括号classSolution{publicbooleanisValid(Strings){Dequedeque=newLinkedListdeque=newArrayDequestack=newLinkedList();for(Strings:tokens){if("+".equals(s)){//leetcode内置jdk的问题,不能使用==判断字符串是否相等stack.push(
-源潮-
·
2024-01-29 00:05
算法
代码随想录
算法训练
营29期|day 17 任务以及具体安排
110.平衡二叉树classSolution{/***递归法*/publicbooleanisBalanced(TreeNoderoot){returngetHeight(root)!=-1;}privateintgetHeight(TreeNoderoot){if(root==null){return0;}intleftHeight=getHeight(root.left);if(leftHei
-源潮-
·
2024-01-29 00:05
算法
java
开发语言
代码随想录
算法训练
营29期|day 20 任务以及具体安排
654.最大二叉树classSolution{publicTreeNodeconstructMaximumBinaryTree(int[]nums){returnconstructMaximumBinaryTree1(nums,0,nums.length);}publicTreeNodeconstructMaximumBinaryTree1(int[]nums,intleftIndex,intri
-源潮-
·
2024-01-29 00:05
算法
数据结构
代码随想录
算法训练
营29期|day 24 任务以及具体安排
理论基础#什么是回溯法回溯法也可以叫做回溯搜索法,它是一种搜索的方式。在二叉树系列中,我们已经不止一次,提到了回溯,例如二叉树:以为使用了递归,其实还隐藏着回溯(opensnewwindow)。回溯是递归的副产品,只要有递归就会有回溯。所以以下讲解中,回溯函数也就是递归函数,指的都是一个函数。#回溯法的效率回溯法的性能如何呢,这里要和大家说清楚了,虽然回溯法很难,很不好理解,但是回溯法并不是什么高
-源潮-
·
2024-01-29 00:05
算法
数据结构
leetcode
java
代码随想录
算法训练
营29期|day32 任务以及具体安排
第八章贪心算法part02122.买卖股票的最佳时机II//贪心思路classSolution{publicintmaxProfit(int[]prices){intresult=0;for(inti=1;i=nums.length-1){returntrue;}}returnfalse;}}思路:更新覆盖范围,如果覆盖范围>=最后一个点的位置,就returntrue,注意!!!!要在覆盖范围内更
-源潮-
·
2024-01-29 00:35
算法
leetcode
java
数据结构
代码随想录
贪心算法
代码随想录
算法训练
营第四十五天|70. 爬楼梯(进阶)、322. 零钱兑换、279.完全平方数
题目:70.爬楼梯(进阶)文章链接:代码随想录题目链接:卡码网题目链接图释:#include#includeusingnamespacestd;intmain(){intn,m;while(cin>>n>>m){//m表示至多爬m个台阶[1,2,...m]n表示楼顶数//dp[i]表示达到第i个台阶有dp[i]中方法(排列问题)vectordp(n+1,0);dp[0]=1;//初始化//因为dp
一楼二栋
·
2024-01-29 00:33
算法
leetcode
c++
代码随想录
算法训练
营第四十四天|完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ
题目:完全背包文章链接:代码随想录视频链接:LeetCode:完全背包题目链接:卡码网题目链接图释:#include#includeusingnamespacestd;//先遍历背包,再遍历物品voidtest_CompletePack(vectorweight,vectorvalue,intbagWeight){vectordp(bagWeight+1,0);for(intj=0;j=0)dp[
一楼二栋
·
2024-01-29 00:03
算法
c++
leetcode
代码随想录
算法训练
营第四十三天|1049. 最后一块石头的重量 II、 494. 目标和、474.一和零
题目:1049.最后一块石头的重量II文章链接:代码随想录视频链接:LeetCode:1049.最后一块石头的重量||题目链接:力扣题目链接图释:classSolution{public:intlastStoneWeightII(vector&stones){//其实也是尽可能地将一堆石头分成两部分,它们相互抵消vectordp(1501,0);//背包中最大石头的重量(30*100/2)ints
一楼二栋
·
2024-01-29 00:02
算法
leetcode
c++
代码随想录
算法训练
营第四十六天|139.单词拆分、多重背包、背包问题总结
题目:139.单词拆分文章链接:代码随想录视频链接:LeetCode:139.单词拆分题目链接:力扣题目链接图释:classSolution{public:boolwordBreak(strings,vector&wordDict){//将字符串的列表装到set数组中,方便查找findunordered_setwordSet(wordDict.begin(),wordDict.end());//d
一楼二栋
·
2024-01-29 00:31
算法
c++
leetcode
蓝桥杯
算法训练
平方计算
问题描述输入正整数a,m,输出a^2%m,其中^表示乘方,即a^2表示a的平方,%表示取余。输入格式输入包含两个整数a,m,a不超过10000。输出格式输出一个整数,即a^2%m的值。样例输入56样例输出1注:a的平方可以写成a*a#include#includeusingnamespacestd;intmain(){inta,m;cin>>a>>m;cout<<a*a%m;return0;}
开心比对错重要
·
2024-01-28 21:44
蓝桥杯
算法
c++
c语言
数据结构
代码随想录
算法训练
营第22天 | LeetCode.235.二叉搜索树的最近公共祖先、LeetCode.701.二叉搜索树中的插入操作、LeetCode.450删除二叉搜索树中的节点
题目链接:235.二叉搜索树的最近公共祖先-力扣(LeetCode)作者思考:本题也是求最近的公共祖先,那么这题和之前那个求公共祖先的题目有什么区别呢?本题给我们的二叉树是搜索二叉树,也就是这个二叉树是一个有序二叉树。当题目给我们这种信息,我们一定要利用好二叉搜索树的特性。因为是有序树,所以如果中间结点是q和p的公共祖先,那么中结点的数组一定在[p,q]区间。即中结点>p&&中结点q&&中结点p.
Ewng
·
2024-01-28 18:52
算法
c++
leetcode
算法训练
day22Leetcode236二叉搜索树的最近祖先701二叉搜索树中的插入操作450删除二叉搜索树中的节点
235二叉搜索树的最近公共祖先题目描述https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/description/我的想法利用二叉搜索树特性遍历,从上到下遍历题目分析在有序树里,如果判断一个节点的左子树里有p,右子树里有q呢?因为是有序树,所有如果中间节点是q和p的公共祖先,那么中节点的数组一定是在
dc爱傲雪和技术
·
2024-01-28 17:41
算法
代码随想录
算法训练
营第十五天| 102. 二叉树的层序遍历、226.翻转二叉树、101. 对称二叉树
文章目录1.二叉树的层序遍历2.翻转二叉树3.对称二叉树1.二叉树的层序遍历给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。示例1:输入:root=[3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例2:输入:root=[1]输出:[[1]]示例3:输入:root=[]输出:[]提示:树中节点数目在范围[0,2000
这是最后一个BUG
·
2024-01-28 16:24
算法记录
算法
c++
代码随想录
算法训练
营第十二天|239. 滑动窗口最大值、347.前 K 个高频元素
文章目录1.滑动窗口最大值2.前K个高频元素1.滑动窗口最大值给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例1:输入:nums=[1,3,-1,-3,5,3,6,7],k=3输出:[3,3,5,5,6,7]解释:示例2:输入:nums=[1],k=1输出:[1]提示:1
这是最后一个BUG
·
2024-01-28 16:54
算法记录
算法
代码随想录
算法训练
营第十四天| 二叉树理论基础、递归遍历
文章目录二叉树理论基础篇2.二叉树的前序遍历二叉树理论基础篇1.二叉树的种类满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。完全二叉树:除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置(优先级队列就是一个堆,堆就是一棵完全二叉树,同时保证父子节点的顺序关系)。二叉搜索树:是一个有序树
这是最后一个BUG
·
2024-01-28 16:54
算法记录
c++
算法
代码随想录
算法训练
营第八天|344.反转字符串、541. 反转字符串II、卡码网:54.替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串
文章目录1.反转字符串2.反转字符串II3.替换数字4.翻转字符串里的单词5.右旋转字符串1.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。示例1:输入:s=["h","e","l","l","o"]输出:["o","l","l","e","h"]示例2:输入:s
这是最后一个BUG
·
2024-01-28 16:53
算法记录
算法
代码随想录
算法训练
营第十天|232.用栈实现队列、225. 用队列实现栈
文章目录栈与队列内部实现机制1.用栈实现队列2.用队列实现栈栈与队列内部实现机制1.栈的理论基础栈提供push和pop等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。不像是set或者map提供迭代器iterator来遍历所有元素。栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。
这是最后一个BUG
·
2024-01-28 16:53
算法记录
算法
c++
代码随想录
算法训练
营第四天|LetCode 24. 两两交换链表中的节点 、LetCode 19.删除链表的倒数第N个节点、LetCode 面试题. 链表相交、LetCode 142.环形链表 II
文章目录1.两两交换链表中的节点2.删除链表的倒数第N个节点3.链表相交4.环形链表II1.两两交换链表中的节点给定一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1]提示链
这是最后一个BUG
·
2024-01-28 16:23
算法记录
算法
链表
数据结构
代码随想录
算法训练
营第七天|LetCode 454.四数相加II、LetCode 383. 赎金信、LetCode 15. 三数之和、LetCode 18. 四数之和
文章目录1.四数相加、2.赎金信3.三数之和4.四数之和1.四数相加、给定四个整数数组nums1,nums2,nums3,nums4,它们的长度都是n。请计算有多少个元组(i,j,k,l)能满足以下条件:0nums1[0]+nums2[0]+nums3[0]+nums4[1]=1+(-2)+(-1)+2=0(1,1,0,0)->nums1[1]+nums2[1]+nums3[0]+nums4[0]
这是最后一个BUG
·
2024-01-28 16:23
算法记录
算法
c++
代码随想录
算法训练
营第十一天|20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值
文章目录1.有效的括号2.删除字符串中的所有相邻重复项3.逆波兰表达式求值1.有效的括号给定一个只包括‘(’,‘)’,‘{’,‘}’,‘[’,‘]’的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。示例1:输入:s="()"输出:true示例2:输入:s="()[]{}"输出:true示例3:输
这是最后一个BUG
·
2024-01-28 16:50
算法记录
算法
代码随想录
算法训练
营|day9
第四章字符串28.实现strStr()字符串总结双指针回顾总结28.实现strStr()(1)KMP算法:视频讲解题目详解前缀:所有以第一个字符开头的连续子串,不包含最后一个字符。后缀:所有以最后一个字符结尾的连续子串,不包含第一个字符。next数组存储了模式串最长相等前后缀,j指向前缀末尾,i指向后缀末尾寻找与不匹配位置之前字符串最长相等前后缀长度的位置,跳转并进行后续匹配funcstrStr(
果木26
·
2024-01-28 10:47
代码随想录练习
算法
go
代码随想录
算法训练
营|day15
第六章二叉树102.二叉树的层序遍历226.翻转二叉树101.对称二叉树相关推荐学习补充总结102.二叉树的层序遍历文章详解(1)递归主要思路:递归按照深度遍历,为了保证同一层节点放入同一个切片,递归时记录每个节点的深度depth,递归到新节点将值追加到对应depth的切片中funclevelOrder(root*TreeNode)[][]int{res:=[][]int{}depth:=0var
果木26
·
2024-01-28 10:47
代码随想录练习
算法
go
代码随想录
算法训练
营|day16
第六章二叉树104.二叉树的最大深度559.n叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数代码随想录文章详解总结104.二叉树的最大深度最大深度:根节点到最远叶子节点的最长路径上的节点个数(1)递归:max(左子树高度,右子树高度)+1funcmaxDepth(root*TreeNode)int{ifroot==nil{return0}returnmax(maxDepth(r
果木26
·
2024-01-28 10:47
代码随想录练习
算法
go
代码随想录
算法训练
营|day18
第六章二叉树513.找树左下角的值112.路径总和113.路径总和ii106.从中序与后序遍历序列构造二叉树105.从前序与中序遍历序列构造二叉树代码随想录文章详解总结513.找树左下角的值(1)递归:复用求最大深度先递归遍历左子树,后右子树,所以当取到最大深度时,返回对应的节点值funcfindBottomLeftValue(root*TreeNode)int{ifroot==nil{retur
果木26
·
2024-01-28 10:47
代码随想录练习
算法
上一页
11
12
13
14
15
16
17
18
下一页
按字母分类:
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
其他