自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 代码随想录day1数组/字符串总结

给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。只有在需要插入的时候,fast赋值到slow,且slow向前移动。eg:从前往后遍历,一个需要删除,那么后面的都需要移动。是对暴力循环子串开头和结尾的优化。

2024-08-30 22:58:37 715

原创 代码随想录算法训练营day58:图论08:拓扑排序精讲;dijkstra(朴素版)精讲

某个大型软件项目的构建系统拥有 N 个文件,文件编号从 0 到 N - 1,在这些文件中,某些文件依赖于其他文件的内容,这意味着如果文件 A 依赖于文件 B,则必须在处理文件 A 之前处理文件 B (0 <= A, B <= N - 1)。eg:大学排课,例如 先上A课,才能上B课,上了B课才能上C课,上了A课才能上D课,等等一系列这样的依赖顺序。因为每次寻找入度为0的节点,不一定只有一个节点,可能很多节点入度都为0,所以要将这些入度为0的节点放到队列里,依次去处理。因为是有向,可以用邻接表记录。

2024-08-30 16:10:31 598

原创 代码随想录算法训练营day57:图07:prim算法精讲;kruskal算法精讲

连通图 的 极小连通子图,含有全部n个顶点,n-1条边——添加上一条边,一定会构成环——不是唯一的——可以用DFS/BFS 生成那么就是 最小生成树算法的任务所在。

2024-08-28 16:41:01 888

原创 代码随想录算法训练营day56:图06:冗余连接(图变树)

,这说明在两条边都可以删除的情况下,要删顺序靠后的边!我们来想一下 有向树的性质,如果是有向树的话,

2024-08-27 15:35:21 779

原创 代码随想录算法训练营day53:图04:104.建造最大岛屿;110. 字符串接龙;105.有向图的完全可达性

第二步:再遍历地图,遍历0的方格(因为要将0变成1),并统计该1(由0变成的1)周边岛屿面积,将其相邻面积相加在一起,遍历所有 0 之后,就可以得出 选一个0变成1 之后的最大面积。给定一个有向图,包含 N 个节点,节点编号分别为 1,2,...,N。给定一个由 1(陆地)和 0(水)组成的矩阵,你最多可以将矩阵中的一格水变为一块陆地,在执行了此操作之后,矩阵中最大的岛屿面积是多少。给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿是被水包围,并且通过水平方向或垂直方向上相邻的陆地连接而成的。

2024-08-26 17:08:41 1169

原创 代码随想录算法训练营day55:图论05:并查集

只需要用一个一维数组来表示,即:father[A] = B,father[B] = C 这样就表述 A 与 B 与 C连通了(有向连通图)。输出一个整数,代表是否存在从节点 source 到节点 destination 的路径。后续 M 行,每行两个正整数 s 和 t,代表从节点 s 与节点 t 之间有一条边。给定一个包含 n 个节点的无向图中,节点编号从 1 到 n (含 1 和 n )。第一行包含两个正整数 N 和 M,N 代表节点的个数,M 代表边的个数。进一步优化:合树的时候,矮树并入高树。

2024-08-26 10:35:59 1248

原创 代码随想录算法训练营day52:图03:101. 孤岛的总面积;102. 沉没孤岛;103. 水流问题

给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域,且完全被水域单元格包围。给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域,且完全被水域单元格包围。矩阵的左边界和上边界被认为是第一组边界,而矩阵的右边界和下边界被视为第二组边界。思路依然是从地图周边出发,将周边空格相邻的陆地都做上标记,然后在遍历一遍地图,遇到 陆地 且没做过标记的,那么都是地图中间的 陆地 ,全部改成水域就行。

2024-08-22 15:14:37 990

原创 代码随想录算法训练营day51:图论02:99. 岛屿数量;100. 岛屿的最大面积

给定一个由 1(陆地)和 0(水)组成的矩阵,计算岛屿的最大面积。岛屿面积的计算方式为组成岛屿的陆地的总数。给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。后续 N 行,每行包含 M 个数字,数字为 1 或者 0,表示岛屿的单元格。如果从队列拿出节点,再去标记这个节点走过,就会发生下图所示的结果,会导致很多节点重复加入队列。那么如何把节点陆地所能遍历到的陆地都标记上呢,就可以使用 DFS,BFS或者并查集。遇到一个未标记且是陆地的点,开始计算面积,搜索完附近所有未标记且是陆地的点。

2024-08-22 11:53:34 1088

原创 代码随想录算法训练营day50:图论01:图论理论基础;深度优先搜索理论基础;98. 所有可达路径;广度优先搜索理论基础

二维数组数组结构保存所有路径,需要一维数组保存单一路径,这种保存结果的数组,我们可以定义一个全局变量,避免让我们的函数参数过多。如果想表示无向图,即:grid[2][5] = 6,grid[5][2] = 6,表示节点2 与 节点5 相互连通,权值为6。例如: grid[2][5] = 6,表示 节点 2 连接 节点5 为有向图,节点2 指向 节点5,边的权值为6。图中有一条双向边,即:grid[2][5] = 6,grid[5][2] = 6。【有向图】:任何两个节点是可以相互到达的,我们称之为。

2024-08-21 16:11:42 1228

原创 代码随想录算法训练营day48:单调栈

目录739. 每日温度503.下一个更大元素II分析:42. 接雨水本质:暴力解法 分析:双指针优化单调栈84.柱状图中最大的矩形分析:双指针:单调栈力扣题目链接(opens new window)请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2,

2024-08-20 13:52:34 907

原创 代码随想录算法训练营day46:动态规划part13

如果这矩阵是从上到下,从左到右遍历,那么会用到没有计算过的dp[i + 1][j - 1],也就是根据不确定是不是回文的区间[i+1,j-1],来判断了[i,j]是不是回文,那结果一定是不对的。断字符串S是否是回文,那么如果我们知道 s[1],s[2],s[3] 这个子串是回文的,那么只需要比较 s[0]和s[4]这两个元素是否相同,如果相同的话,这个字符串s 就是回文串。那么dp[i][j]一定是取最大的,即:dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);

2024-08-17 22:47:33 715

原创 代码随想录算法训练营day45:动态规划part12:115.不同的子序列;583. 两个字符串的删除操作;72. 编辑距离

那最后当然是取最小值,所以当word1[i - 1] 与 word2[j - 1]不相同的时候,递推公式:dp[i][j] = min({dp[i - 1][j - 1] + 2, dp[i - 1][j] + 1, dp[i][j - 1] + 1});因为 dp[i][j - 1] + 1 = dp[i - 1][j - 1] + 2,所以递推公式可简化为:dp[i][j] = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1);

2024-08-16 11:33:04 1211

原创 代码随想录算法训练营day44:动态规划11:1143.最长公共子序列;1035.不相交的线;53. 最大子序和;392.判断子序列

t[j - 1]),此时相当于t要删除元素,t如果把当前元素t[j - 1]删除,那么dp[i][j] 的数值就是 看s[i - 1]与 t[j - 2]的比较结果了,即:dp[i][j] = dp[i][j - 1];其实这里 大家可以发现和。

2024-08-15 11:48:53 749

原创 代码随想录算法训练营第43天:动态规划part10:子序列问题

dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度为什么一定表示 “以nums[i]结尾的最长递增子序” ,因为我们在 做 递增比较的时候,如果比较 nums[j] 和 nums[i] 的大小,那么两个递增子序列一定分别以nums[j]为结尾 和 nums[i]为结尾, 要不然这个比较就没有意义了,不是尾部元素的比较那么 如何算递增呢。

2024-08-14 13:01:30 1552

原创 代码随想录算法训练营day40:动态规划08:股票问题

之前我们已经把力扣上股票系列的题目都讲过的,但没有来一篇股票总结,来帮大家高屋建瓴,所以总结篇这就来了!贪心思路:最左最小值,最右最大值复杂一些之后需要使用动态规划的思路:将每天股票状态分成若类,每一类都可以用前一天的状态决定讨论每天每种状态的最大值注意递推公式细节和初始化有时候会写错dp和nums数组,还有要确保下标有效。

2024-08-12 09:52:22 881

原创 代码随想录算法训练营day39||动态规划07:多重背包+打家劫舍

问能否能装满背包(或者最多装多少):dp[j] = max(dp[j], dp[j - nums[i]] + nums[i]);动态规划:416.分割等和子集(opens new window)动态规划:1049.最后一块石头的重量 II(opens new window)动态规划:494.目标和(opens new window)动态规划:518. 零钱兑换 II(opens new window)动态规划:377.组合总和Ⅳ(opens new window)

2024-08-09 14:28:16 1108

原创 Leetcode热题100||150:链表

分析:把他们连成一个环,再在合适位置切开!,旋转链表,将链表每个节点向右移动。**还有一些涉及排序的暂时没做。给你一个链表的头节点。

2024-08-08 16:04:48 333

原创 代码随想录算法训练营day38:动态规划part6:322. 零钱兑换;279.完全平方数;139.单词拆分

从递推公式中可以看出,dp[i] 的状态依靠 dp[j]是否为true,那么dp[0]就是递推的根基,dp[0]一定要为true,否则递推下去后面都都是false了。"apple", "pen" 是物品,那么我们要求 物品的组合一定是 "apple" + "pen" + "apple" 才能组成 "applepenapple"。"apple" + "apple" + "pen" 或者 "pen" + "apple" + "apple" 是不可以的,那么我们就是强调物品之间顺序。

2024-08-08 14:33:53 987

原创 代码随想录算法训练营day37:动态规划05:完全背包问题:518.零钱兑换II;377. 组合总和 Ⅳ;70. 爬楼梯(进阶版)

第i件物品的重量是weight[i],得到的价值是value[i]。所有可能的组合为: (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 1)01背包中二维dp数组的两个for遍历的先后循序是可以颠倒了,一维dp数组的两个for循环先后循序一定是先遍历物品,再遍历背包容量。因为dp[j] 是根据 下标j之前所对应的dp[j]计算出来的。求的装满的方法数量:对应dp[ j ] += dp[ j-nums[ i ] ]

2024-08-07 15:56:00 1131

原创 代码随想录算法训练营day36:动态规划04:1049.最后一块石头的重量II;494.目标和;474.一和零

力扣题目链接(opens new window)有一堆石头,每块石头的重量都是正整数。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x!= y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头最小的可能重量。如果没有石头剩下,就返回 0。输入:[2,7,4,1,8,1]输出:1。

2024-08-07 13:51:12 1094

原创 代码随想录算法训练营day35:动态规划03:背包问题:0-1背包;416. 分割等和子集

dp【i】【j】:从【0,i】的物品中,任取,放入容量为j的背包,能形成的最大价值。

2024-08-06 16:01:56 1187

原创 代码随想录算法训练营day34:动态规划02:62.不同路径;63. 不同路径 II;343. 整数拆分;96.不同的二叉搜索树

这里要看一下递推公式dp[i][j] = dp[i - 1][j] + dp[i][j - 1],dp[i][j]都是从其上方和左方推导而来,那么从左到右一层一层遍历就可以了。那么很自然,dp[i][j] = dp[i - 1][j] + dp[i][j - 1],因为dp[i][j]只有这两个方向过来。这样就可以保证推导dp[i][j]的时候,dp[i - 1][j] 和 dp[i][j - 1]一定是有数值的。表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。

2024-08-05 14:22:38 1144

原创 代码随想录算法训练营day32:动态规划01

不考虑dp[0]如何初始化,只初始化dp[1] = 1,dp[2] = 2,然后从i = 3开始递推,这样才符合dp[i]的定义。还有就是dp[i - 2],上i-2层楼梯,有dp[i - 2]种方法,那么再一步跳两个台阶不就是dp[i]了么。首先是dp[i - 1],上i-1层楼梯,有dp[i - 1]种方法,那么再一步跳一个台阶不就是dp[i]了么。1、确定dp数组以及下标的含义:dp[i]的定义为:dp[i]: 爬到第i层楼梯,有dp[i]种方法。某一问题有很多重叠子问题,使用动态规划是最有效的。

2024-08-05 10:52:05 873

原创 代码随想录算法训练营:贪心算法3:860.柠檬水找零;406.根据身高重建队列;452. 用最少数量的箭引爆气球;435. 无重叠区间;763.划分字母区间;56. 合并区间;738;968

在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。需要丢弃的是区间1,而非区间2,故而这边不是正常的记录上一条右边界值,而是根据右边界的大小 决定要丢掉。这是很重要的一个线索,摄像头可以覆盖上中下三层,如果把摄像头放在叶子节点上,就浪费的一层的覆盖。

2024-07-31 14:48:52 1212

原创 代码随想录算法训练营——贪心算法:122.买卖股票的最佳时机 II;55. 跳跃游戏;45.跳跃游戏 II;1005.K次取反后最大化的数组;34. 加油站;135. 分发糖果

如果 ratings[i] > ratings[i + 1],此时candyVec[i](第i个小孩的糖果数量)就有两个选择了,一个是candyVec[i + 1] + 1(从右边这个加1得到的糖果数量),一个是candyVec[i](之前比较右孩子大于左孩子得到的糖果数量)。i从0开始累加rest[i],和记为curSum,一旦curSum小于零,说明[0, i]区间都不能作为起始位置,因为这个区间选择任何一个位置作为起点,到i这里都会断油,那么起始位置从i+1算起,再从0计算curSum。

2024-07-29 17:30:27 921

原创 代码随想录算法训练营day27 贪心算法part01:贪心算法理论知识;455.分发饼干;376. 摆动序列;53. 最大子序和

例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

2024-07-29 11:04:24 1058

原创 代码随想录算法训练营day25:回溯04:491.递增子序列;46.全排列

我们需要给「不选择」做一个限定条件,只有当当前的元素不等于上一个选择的元素的时候,才考虑不选择当前元素,直接递归后面的元素。其中第二种情况和第三种情况其实是等价的,我们这样限制之后,舍弃了第二种,保留了第三种,于是达到了去重的目的。使序列合法的办法非常简单,即给「选择」做一个限定条件,只有当前的元素大于等于上一个选择的元素的时候才能选择这个元素,这样枚举出来的所有元素都是合法的。大家应该很清晰的看到,树层上对前一位去重非常彻底,效率很高,树枝上对前一位去重虽然最后可以得到答案,但是做了很多无用搜索。

2024-07-27 22:57:06 948

原创 代码随想录算法训练营第24天:回溯03:93.复原IP地址;78.子集;90.子集II

老老实实开辟(len+1)的空间,一个个输入字符,最后添加or不添加‘\0’都可以,可以提前添加'\0'终止字符串的创建3、

2024-07-27 17:06:31 552

原创 代码随想录算法训练营第23天:回溯02:39. 组合总和;40.组合总和II;131.分割回文串

给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。示例: 输入: "aab" 输出: [ ["aa","b"], ["a","a","b"] ]candidates 中的每个数字在每个组合中只能使用一次。candidates 中的数字可以无限制重复被选取。

2024-07-25 16:31:35 280

原创 代码随想录算法训练营第22天-leetcode-回溯算法part01:

column的赋值过程:*column是正常数组,先为*column开辟空间,*column【第几个,<returnsize】=ans【第几个】有多少个二层元素。示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],放入path的过程需要用循环一个个放入,直接=path的话,后面会随path修改而修改。示例 2: 输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5], [2,3,4]

2024-07-25 13:54:27 1199

原创 代码随想录算法训练营第22天-leetcode-二叉树08:669. 修剪二叉搜索树;108.将有序数组转换为二叉搜索树;538.把二叉搜索树转换为累加树

你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。题目要求,实际上是每个节点加上中序排列后面的那个节点,故而可以反向中序排序,即RNL,用prior记录前一个节点的值,加上前一个节点的值即可。左右子树也必须是二叉搜索树。后序遍历每个节点,对于在范围外的节点,考虑保留其左子树/右子树(只可能保留一个)

2024-07-24 14:54:00 1069 1

原创 代码随想录算法训练营第20天-leetcode-二叉树07:

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]你可以返回任意有效的结果。

2024-07-24 13:23:00 500

原创 代码随想录算法训练营第18天-leetcode-二叉树06:530.二叉搜索树的最小绝对差;501.二叉搜索树中的众数;236. 二叉树的最近公共祖先

leetcode的判定规则:每道题目你提交之后所用的测试用例共享全局变量,这就说得通了,本地跑的通,是因为本地就一组样例,这个时候在本地运行的时候,每次都初始化全局变量,而提交是在服务器跑的,多组样例一起传参,全局变量只会初始化一次,这就是这题result放在全局变量会错误的原因.————判断逻辑是 如果递归遍历遇到q,就将q返回,遇到p 就将p返回,那么如果 左右子树的返回值都不为空,说明此时的中节点,一定是q 和p 的最近祖先。将参数传入函数时f(ans,&size)——对应上述的int*

2024-07-23 17:27:42 1021

原创 代码随想录算法训练营day17-leetcode-二叉树05: 113.路径综合2,654.最大二叉树,700.二叉搜索树中的搜索,98.验证二叉搜索树

合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。我们要比较的是 左子树所有节点小于中间节点,右子树所有节点大于中间节点。给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。不能单纯的比较左节点小于中间节点,右节点大于中间节点就完事了。要知道中序遍历下,输出的二叉搜索树节点的数值是有序序列。通过给定的数组构建最大二叉树,并且输出这个树的根节点。给定一个二叉树,判断其是否是一个有效的二叉搜索树。

2024-07-19 12:30:04 915

原创 代码随想录算法训练营第16天-leetcode-二叉树:106.从中序与后序遍历序列构造二叉树;路径类题目

,buffer是待输入进的字符串,f是输入格式(类似printf),“……要从头创建树的题目,需要一个个结点创建,一次malloc(sizeof(tree))只创建了一个结点。给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。说明: 叶子节点是指没有子节点的节点。

2024-07-19 00:00:00 263

原创 代码随想录算法训练营第15天-leetcode-二叉树3:110.平衡二叉树;404.左叶子之和;513.找树左下角的值;222.完全二叉树的节点个数

—因为有可能根本没能进入while/if。

2024-07-18 23:07:16 1090

原创 代码随想录算法训练营第14天·leetcode·二叉树2

翻转一棵二叉树。

2024-07-16 12:34:20 213

原创 代码随想录算法训练营第13天·leetcode·二叉树1

确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。

2024-07-16 00:07:05 395

原创 代码随想录第11天打卡·leetcode· 栈与队列part02:150. 逆波兰表达式求值;239. 滑动窗口最大值;

先放入k个元素,初始化堆若新的元素比堆顶大,则弹出堆顶,放入新的元素至堆顶,调整至小顶堆。

2024-07-14 15:32:09 973

原创 代码随想录第10天打卡·leetcode·栈和队列1:232.用栈实现队列;225. 用队列实现栈;1047. 删除字符串中的所有相邻重复项;20. 有效的括号

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。-对于栈和队列的情况,create的时候 为top /front rear指针赋值。++i是先自增,后赋值(++在前,先自增)。情况1:栈2是空的,则把栈1元素输出至栈2(自然逆向)2、pop:(考虑到栈2中的元素是先进入的,永远比栈1先输出)- create的过程中是需要开辟空间的!peek() -- 返回队列首部的元素。

2024-07-12 23:37:02 833

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除