![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程题
文章平均质量分 64
失落夏天
安卓领域开发者,擅长解决安卓的各种性能问题,以及打造插件化,效率等框架。
横向对后台/IOS/前端等领域都有涉及。
展开
-
LeetCode解法汇总2779. 数组的最大美丽值
选择下标 1 ,将其替换为 4(从范围 [4,8] 中选出),此时 nums = [4,4,1,2]。- 选择下标 3 ,将其替换为 4(从范围 [0,4] 中选出),此时 nums = [4,4,1,4]。定义是:经由原数组删除一些元素(也可能不删除)得到的一个新数组,且在此过程中剩余元素的顺序不发生改变。执行上述操作后,数组的美丽值是 3(子序列由下标 0 、1 、3 对应的元素组成)。最终右指针的位置减去左指针的位置,就是最终的结果。数组 nums 的美丽值是 4(整个数组)。原创 2024-06-21 21:00:00 · 432 阅读 · 0 评论 -
LeetCode解法汇总881. 救生艇
如果右指针指向的位置的人的重量小于limit,则与左指针指向的位置的人的重量进行累加,如果之和大于limit,则右指针向左移动;如果之和小于等于limit,则说明可以装下两个人,则右指针向左移动,左指针向右移动。当左指针的位置大于右指针时,循环结束。如果右指针指向的位置的人的重量大于等于limit,则右指针向左移动;每艘船最多可同时载两人,但条件是这些人的重量之和最多为。4 艘船分别载 (3), (3), (4), (5)3 艘船分别载 (1, 2), (2) 和 (3),每艘船可以承载的最大重量为。原创 2024-06-11 20:52:09 · 515 阅读 · 0 评论 -
LeetCode解法汇总1329. 将矩阵按对角线排序
是一条从矩阵最上面行或者最左侧列中的某个元素开始的对角线,沿右下方向一直到矩阵末尾的元素。下面sortArray方法,代表从x,y轴开始的斜向排序。这道题其实就是一个排序题,只不过排序是斜向的。上的元素按升序排序后,返回排好序的矩阵。原创 2024-04-29 22:00:00 · 415 阅读 · 0 评论 -
LeetCode解法汇总2385. 感染二叉树需要的总时间
首先,构造递归方法,方法的返回值为当前节点是否包含start节点。如果找到start节点,则计算这个节点为出发点的最远路径,这是备选值1。上层递归方法中,分左右节点查询。如果左节点中包含start节点,路径为当前节点右节点的最远路径+start节点和当前节点的层级差,这是备选值2。第 0 分钟,树中唯一一个节点处于感染状态,返回 0。- 第 1 分钟:节点 1、10、6。- 第 4 分钟:节点 9 和 2。- 第 0 分钟:节点 3。- 第 3 分钟:节点 4。- 第 2 分钟:节点5。原创 2024-04-24 21:00:00 · 415 阅读 · 0 评论 -
LeetCode解法汇总1052. 爱生气的书店老板
我们构建一个数组,记录每分钟不满意的用户数量,然后求minutes时间范围内最多的不满意数量。当书店老板生气时,那一分钟的顾客就会不满意,若老板不生气则顾客是满意的。这题中能让最多的客户满意,可以转变为求让最多的用户由不满意转换为满意。把这些不满意的数量转换为满意,加上之前满意的就是我们最终结果。书店老板知道一个秘密技巧,能抑制自己的情绪,可以让自己连续。分钟开始时进入商店的顾客数量,所有这些顾客在第。在某些时候,书店老板会生气。分钟不生气,但却只能使用一次。有一个书店老板,他的书店开了。原创 2024-04-23 22:00:00 · 498 阅读 · 0 评论 -
LeetCode解法汇总377. 组合总和 Ⅳ
那么遍历nums数组,如果dp[i-nums[i]]>0,则dp[i]+=dp[i-nums[i]]即可。dp[i]代表target为i时的类型数量。题目数据保证答案符合 32 位整数范围。请注意,顺序不同的序列被视作不同的组合。原创 2024-04-22 19:48:30 · 517 阅读 · 2 评论 -
2007. 从双倍数组中还原原数组
遍历index1时,再循环内寻找值等于changed[index1]*2的index2位置,找不到index2++,找到也index2++,因为还有下一轮。如果index1位置对应的值为1,说明被使用,则修改index1和index2的位置,此时index2= max(index1 + 1, index2);最后使用双指针,指针index1记录原数组指向的数字,index2指向双倍数组中的数字。其他可能的原数组方案为 [4,3,1] 或者 [3,1,4]。数组,否则请返回空数组。原创 2024-04-18 21:00:00 · 492 阅读 · 0 评论 -
LeetCode解法汇总2924. 找到冠军 II
所以构建数组,把失败的位置标记为-1。最后统计失败的数组,有2个及以上为0,则证明有多个win。否则返回为0的位置即可。2 队比 0 队和 1 队弱。3 队比 1 队弱。但是 1 队和 0 队之间不存在强弱对比。所以答案是 -1。1 队比 0 队弱。2 队比 1 队弱。所以冠军是 0 队。一个冠军,则返回将会成为冠军的队伍。其实我们不用关心谁和谁比,只关心失败者即可。在这场比赛中,如果不存在某支强于。表示这个有向无环图,其中。原创 2024-04-15 23:45:00 · 707 阅读 · 0 评论 -
LeetCode解法汇总2192. 有向无环图中一个节点的所有祖先
我们轻松的梳理出第i个节点依赖哪些节点,本题的难点就是如何按照正确的依赖顺序进行遍历。- 节点 6 有 5 个祖先 0 ,1 ,2 ,3 和 4。- 节点 7 有 4 个祖先 0 ,1 ,2 和 3。- 节点 4 有 4 个祖先 0 ,1 ,2 和 3。- 节点 5 有 3 个祖先 0 ,1 和 3。- 节点 3 有 3 个祖先 0 ,1 和 2。- 节点 3 有 2 个祖先 0 和 1。- 节点 4 有 2 个祖先 0 和 2。- 节点 2 有 2 个祖先 0 和 1。原创 2024-04-13 20:00:00 · 662 阅读 · 0 评论 -
LeetCode解法汇总2923. 找到冠军 I
我们遍历二维数组,只要grid[i][j]的值等于1,则j位置就是PK失败的,则把record[j]设置为0代表失败。grid[0][1] == 1 表示 0 队比 1 队强。所以 0 队是冠军。最后遍历record数组,record[i]=1时i就是最终的胜利者。因为最后只会有一个冠军,所以我们设置record数组记录PK结果。grid[1][0] == 1 表示 1 队比 0 队强。grid[1][2] == 1 表示 1 队比 2 队强。返回这场比赛中将会成为冠军的队伍。所以 1 队是冠军。原创 2024-04-12 19:00:00 · 464 阅读 · 0 评论 -
LeetCode解法汇总1026. 节点与其祖先之间的最大差值
(如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B 的祖先)在所有可能的差值中,最大值 7 由 |8 - 1| = 7 得出。所以构建一个递归方法,传入最大最小值,返回值为最大差值即可。最大差值,那么一定是和父节点中最大最小值进行比较。原创 2024-04-11 23:45:00 · 496 阅读 · 0 评论 -
LeetCode解法汇总1702. 修改后的最大二进制字符串
我们会找到下一位出现的0,利用操作2 我们可以使得这两个0相邻,再使用操作1使得00变成10。我们从字符串左边第一位开始依次遍历,如果是1则不用改变,如果是0,我们则想办法将其变成1。我们依次执行这个操作,直到字符串中没有第二个0,或者达到字符串结尾。对应的十进制数字,那么我们称二进制字符串。请你返回执行上述操作任意次以后能得到的。对应的十进制数字大于二进制字符串。"01" 没办法进行任何转换。给你一个二进制字符串。原创 2024-04-10 20:08:41 · 372 阅读 · 0 评论 -
LeetCode解法汇总1379. 找出克隆二叉树中的相同节点
上图画出了树 original 和 cloned。target 节点在树 original 中,用绿色标记。答案是树 cloned 中的黄颜色的节点(其他示例类似)。的节点,并返回对该节点的引用(在 C/C++ 等有指针的语言中返回 节点指针,其他语言返回节点本身)。如果树中允许出现值相同的节点,将如何解答?给你两棵二叉树,原始树。,以及一个位于原始树。中已有的节点的引用。原创 2024-04-03 21:00:00 · 816 阅读 · 0 评论 -
LeetCode解法汇总518. 零钱兑换 II
所以,我们需要换一种思路,首先求仅使用1求[1,5]范围内每个位置有多少种可能,然后使用1,2求[2,5]范围内每个位置有多少种可能,最后使用[1,2,5]求[5,5]范围内有多少种可能。正常来说,我们会先求1,在求2,3。但是这样会有一个问题,以amout=5,coins=[1,2,5]为例。当i=3时,3=1+2和3=2+1,这两个很明显重复了,导致重复计算。使用动态规划,amoutDp[i]代表到总额为i时所有的组合可能。只用面额 2 的硬币不能凑成总金额 3。表示不同面额的硬币,另给一个整数。原创 2024-03-27 21:00:00 · 556 阅读 · 0 评论 -
LeetCode解法汇总2671. 频率跟踪器
add时,首先找到number对应的model,然后次数+1,同时,从frequencyMap的set中找到这个model并删掉。// 返回 true ,因为 3 出现 2 次。// 返回 true ,因为 3 出现 1 次。// 返回 false ,因为数据结构为空。第二个frequencyMap,key为出现的次数,value为set记录,代表出现key次的所有model。// 数据结构现在包含 [3, 3]然后,构建两个map,第一个numMap,记录出现的数字以及其所对应的model。原创 2024-03-22 21:00:00 · 1170 阅读 · 0 评论 -
LeetCode解法汇总1969. 数组元素的最小非零乘积
首先,我们了解一个概念,两个数之和不变时,大的数越大,小的数越小,则乘积就越小。以p=3为例,有7个数:[1,2,3,4,5,6,7],1和7无法加减,则让2和5结合,2和4结合。得到[1,1,1,6,6,6,7]。总结规律:有2^(p-1)-1个1 以及 2^(p-1)-1个2^p-2,以及1个2^p-1。数组乘积 1 * 6 * 1 * 6 * 1 * 6 * 7 = 1512 是最小乘积。1可以忽略,则最终就是 2^(p-1)-1个2^p-2和1个2^p-1的乘积。只有一个元素,所以乘积为该元素。原创 2024-03-20 23:00:00 · 543 阅读 · 0 评论 -
LeetCode解法汇总303. 区域和检索 - 数组不可变
前缀和求区间数组之和。原创 2024-03-18 19:44:28 · 542 阅读 · 0 评论 -
LeetCode解法汇总2864. 最大二进制奇数
其中一个 '1' 必须出现在最后一位上。而由剩下的数字可以生产的最大数字是 "100"。所以答案是 "1001"。因为字符串 s 中仅有一个 '1' ,其必须出现在最后一位上。所以答案是 "001"。以字符串形式,表示并返回可以由给定组合生成的最大二进制奇数。字符串中的位,使得到的二进制数字是可以由该组合生成的。统计1的数量,其中1个放在最后面,其余的放在最前面即可。原创 2024-03-13 20:23:43 · 395 阅读 · 1 评论 -
LeetCode解法汇总1261. 在受污染的二叉树中查找元素
一个数字正向的计算,就是不断的乘以2,然后+1或者+2。那么逆向去推,我们可以判断target%2是否等于0,如果等于0处于右节点,不等于0则位于左节点。比如target=8,8%2=0,则记录2,然后(8-2)/2生成其父节点3,指向target。target=3,3%2=1,则记录1,然后(3-1)/2生成其父节点1,指向target。通过栈生成查找链[1,1,2]。1代表左,2代表右,查找对应节点是否存在即可。target=1,1%2=1,则记录1,指向根节点。现在这个二叉树受到「污染」,所有的。原创 2024-03-12 21:00:00 · 710 阅读 · 0 评论 -
LeetCode解法汇总2129. 将标题首字母大写
它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母。请你按以下规则将每个单词的首字母。由于所有单词的长度都至少为 3 ,将每个单词首字母大写,剩余字母变为小写。其他单词长度都至少为 3 ,所以其他单词首字母大写,剩余字母小写。其他单词长度都至少为 3 ,所以其他单词首字母大写,剩余字母小写。比较简单,先分割成单词,然后逐个单词转换,最后拼接回字符串。单词 "of" 长度为 2 ,所以它保持完全小写。单词 "i" 长度为 1 ,所以它保留小写。原创 2024-03-11 21:00:00 · 379 阅读 · 0 评论 -
LeetCode解法汇总2834. 找出美丽数组的最小和
所以1,2,3,的数组中,如果选择了1就不能选择5,同理4也不能选。所以第一段范围是[1,1 + leftLength - 1],第二段范围是[target,target + n - leftLength - 1],leftLength=target/2。- 不存在两个不同下标 i 和 j ,使得 nums[i] + nums[j] == 3。- 不存在两个不同下标 i 和 j ,使得 nums[i] + nums[j] == 3。第一种,target>=2*n,这种场景下,最小和就是1到n的累加和。原创 2024-03-08 21:00:00 · 634 阅读 · 0 评论 -
LeetCode解法汇总232. 用栈实现队列
元素移除的时候,检查出栈是否为空,如果为空,则把入栈依次移除添加到出栈中即可。请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(实用两个栈来实现,一个入栈,一个出栈。元素添加的时候,只加入入栈即可。栈的两次倒序,也就变成了正序。原创 2024-03-04 21:00:00 · 507 阅读 · 0 评论 -
LeetCode解法汇总2476. 二叉搜索树最近节点查询
如果节点值大于目标值,则递归搜索其左子树,因为只有左子树的值才会比目标值小,最合适的值仍然为上一次的,因为这一次的不满足。如果节点值小于目标值,则递归搜索其左子树,因为只有右子树的值才会比目标值大,最合适的值调整为当前值,因为本地的值符合匹配。寻找小于等于target的数中最大的数值,属于典型的二叉树搜索,构建一个方法searchValue进行二叉树递归遍历。这道题,其实可以分成寻找小于等于target的数中最大的,以及大于等于target的数中最小的。寻找大于等于target的数中最小的方法也是一样。原创 2024-02-29 22:15:00 · 1788 阅读 · 0 评论 -
LeetCode解法汇总2673. 使二叉树所有路径值相等的最小代价
比如题目中的[1,5,2,2,3,3,1]中,最后一层的节点位置是[2^2-1,2^3-1]的范围,比较3,4位置用较大值减去较小值,差值添加到abs中。然后把较大值加到父节点上,比如3,4位置的父节点就是3/2=1。最后,我们可以构建这样的循环,首先遍历最后一层级节点,保证相邻的两个节点值相等,不相等则填平,然后把填平后的值加到其父节点上,构建父节点的权限。其次某个节点找到其父节点,只要把相邻两个节点靠前的那个节点i除以2即可得到其父节点位置。两条路径已经有相等的路径值,所以不需要执行任何增加操作。原创 2024-02-28 21:00:00 · 798 阅读 · 0 评论 -
LeetCode解法汇总235. 二叉搜索树的最近公共祖先
我的思路是构建一个递归方法,传入值为当前遍历的节点node,搜索的节点searchNode,以及根结点到搜索节点的集合list,返回值为当前节点及其子节点是否包含搜索节点。中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(因为都从根节点开始的,所以如果拥有相同的最近祖先,则其在list中的位置一定是一样的。1.当前节点就是搜索的节点,则把当前节点加入到集合中,并返回true。3.右子节点也是相同的操作。原创 2024-02-27 21:00:00 · 498 阅读 · 0 评论 -
LeetCode解法汇总938. 二叉搜索树的范围和
这里有一个节省时间的办法,如果某个节点值>high,则右子节点就不需要搜索了。进行二叉树搜索遍历,如果值在范围内,则累加到sum上。,返回值位于范围 [low, high]之间的所有结点的值的和。给定二叉搜索树的根结点。原创 2024-02-26 17:20:33 · 412 阅读 · 0 评论 -
LeetCode解法汇总2583. 二叉树中的第 K 大层和
使用searchTreeNode方法进行深度搜索,传入参数为当前节点以及所在层级。,如果两个节点与根节点的距离相同,则认为它们在同一层。最后对层级数组进行排序,倒序取第k位即可。大的层和(不一定不同)。构建一个数组,存放每个层级的值之和。第 2 大的层和等于 13。给你一棵二叉树的根节点。最大的层和是 3。原创 2024-02-23 21:00:00 · 591 阅读 · 0 评论 -
LeetCode解法汇总122. 买卖股票的最佳时机 II
第i天持有股票的最大收益dpHold[i]来源只有两种可能,i-1天未持有股票买入股票,或者i-1天持有股票未卖出,求这两者较大值就是第i天的收益最大值。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。设置两个数组分别记录每天持有股票时最大收益和每天未持有股票时最大收益。原创 2024-02-24 07:00:00 · 327 阅读 · 0 评论 -
LeetCode解法汇总889. 根据前序和后序遍历构造二叉树
前序遍历中,第一个是根结点A,第二个则是子树的根结点B。这时候分两种场景,如果存在左子树,则可以根据B在后序遍历中的位置进行分割成两部分。找到子树B也就是2在postorder中的位置,就可以分成两部分,第一部分在preorder中是[2,4,5],在postorder中是[4,5,2]。第二部分在preorder中是[3,6,7],在postorder中是[6,7,3]。这题和105,106题差不多,仍然是不断构建前序和后序匹配的区间进行生成。是同一棵树的后序遍历,重构并返回二叉树。原创 2024-02-22 21:00:00 · 476 阅读 · 0 评论 -
LeetCode解法汇总106. 从中序与后序遍历序列构造二叉树
1.和105题差不多,只不过后序遍历的最后一个数字,一定是根节点。中序遍历中找到这个根节点,就可以分成左右两份,分别对应左子树和右子树。2.所以我们使用和105题一样的策略,唯一要改的就是传入的区间范围。是同一棵树的后序遍历,请你构造并返回这颗。是二叉树的中序遍历,原创 2024-02-21 21:00:00 · 508 阅读 · 0 评论 -
LeetCode解法汇总105. 从前序与中序遍历序列构造二叉树
2.比如前序遍历是[1,2,3,4],中序遍历是[3,2,1,4],那么1就是根节点,[3,2]就位于根节点的左子树上,[4]位于根节点的右子树上。此时我们就可以构建一个1的节点。3.我们继续对[4]的部分继续采取上面的分割流程,就可以生成一个4的节点,此时无法继续分割。继续对[2,3]的部分进行分割,则可以生成一个2的节点,然后继续分割。4.所以,我们可以采取递归的策略,不断的分割,每次分割取出其前序和中序遍历的部分进行下一轮的遍历,直到长度为1,并添加到其左右节点上。,请构造二叉树并返回其根节点。原创 2024-02-20 17:28:22 · 564 阅读 · 0 评论 -
LeetCode解法汇总292. Nim 游戏
dp[1],dp[2],dp[3]都是true,d[4]为false,5,6,7为true,8为false。这题本来是一道动态规划的题目,以先下的为准,dp[i]代表第i位先下的人赢或者输。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为。1. 移除1颗石头。你的朋友移走了3块石头,包括最后一块。你的朋友移走2块石头,包括最后一块。3.你移走3颗石子。你的朋友移走了最后一块石头。跟明显,%4==0的位置,先下的会输。在所有结果中,你的朋友是赢家。你和你的朋友,两个人一起玩。原创 2024-02-04 13:09:43 · 606 阅读 · 0 评论 -
LeetCode解法汇总2670. 找出不同元素数目差数组
对于 i = 1,前缀中有 2 个不同的元素,而在后缀中有 3 个不同的元素。对于 i = 0,前缀中有 1 个不同的元素,而在后缀中有 3 个不同的元素。对于 i = 1,前缀中有 2 个不同的元素,而在后缀中有 3 个不同的元素。对于 i = 2,前缀中有 3 个不同的元素,而在后缀中有 2 个不同的元素。对于 i = 2,前缀中有 2 个不同的元素,而在后缀中有 2 个不同的元素。对于 i = 3,前缀中有 3 个不同的元素,而在后缀中有 1 个不同的元素。两个Map的数量之差,就是我们想要的答案。原创 2024-02-01 21:00:00 · 496 阅读 · 0 评论 -
LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
第 1 秒,将每个位置的元素分别变为 [nums[0],nums[2],nums[2],nums[2],nums[3]]。变化后,nums = [2,3,3,3,3]。- 第 2 秒,将每个位置的元素分别变为 [nums[1],nums[1],nums[2],nums[3],nums[4]]。变化后,nums = [3,3,3,3,3]。- 第 1 秒,将每个位置的元素分别变为 [nums[3],nums[1],nums[3],nums[3]]。变化后,nums = [2,2,2,2]。原创 2024-01-30 15:36:34 · 622 阅读 · 0 评论 -
LeetCode解法汇总2859. 计算 K 置位下标对应元素的和
因此,答案为 nums[1] + nums[2] + nums[4] = 13。然后判断个数,如果countOnes个数符合预期,则添加到sum中。下标 1、2 和 4 在其二进制表示中都存在 k = 1 个置位。定义方法countOnes,代表num中以二进制表示时1的个数。,这些特定元素满足:其对应下标的二进制表示中恰存在。只有下标 3 的二进制表示中存在 k = 2 个置位。整数的二进制表示中的 1 就是这个整数的。因此,答案为 nums[3] = 1。原创 2024-01-26 18:28:02 · 587 阅读 · 0 评论 -
LeetCode解法汇总2865. 美丽塔 I
dpLeft[i]代表i的左侧从左向右单调非递减,并且使0到i位置之和最大的值。dpRight[i]代表i的右侧从左向右单调非递增,并且使i到n-1位置之和最大的值。某个位置i的大高度dp[i] = dpLeft[i] + dpRight[i] - maxHeights.get(i);求dpRight[i]的时候,我们从右向左遍历,构造单调递减的栈。如果i位置的值小于栈顶,则我们出栈,直到栈为空。- heights 是个山脉数组,峰值在 i = 3 处。注意,在这个方案中,i = 3 也是一个峰值。原创 2024-01-24 20:10:06 · 1123 阅读 · 0 评论 -
LeetCode解法汇总2182. 构造限制重复的字符串
注意,尽管 "zzcccca" 字典序更大,但字母 'c' 连续出现超过 3 次,所以它不是一个有效的 repeatLimitedString。注意,尽管 "bbabaaa" 字典序更大,但字母 'a' 连续出现超过 2 次,所以它不是一个有效的 repeatLimitedString。因此,没有字母连续出现超过 repeatLimit 次,字符串是一个有效的 repeatLimitedString。该字符串是字典序最大的 repeatLimitedString ,所以返回 "bbabaa"。原创 2024-01-20 17:29:07 · 1079 阅读 · 0 评论 -
LeetCode解法汇总2171. 拿出最少数目的魔法豆
总共拿出了 1 + 2 + 1 = 4 个魔法豆,剩下非空袋子中魔法豆的数目相等。总共拿出了 2 + 2 + 3 = 7 个魔法豆,剩下非空袋子中魔法豆的数目相等。- 然后我们从另一个有 2 个魔法豆的袋子中拿出 2 个魔法豆。- 我们从有 2 个魔法豆的其中一个袋子中拿出 2 个魔法豆。- 然后我们从有 6 个魔法豆的袋子中拿出 2 个魔法豆。- 然后我们从有 5 个魔法豆的袋子中拿出 1 个魔法豆。- 然后我们从有 3 个魔法豆的袋子中拿出 3 个魔法豆。剩下袋子中魔法豆的数目为:[4,0,4,原创 2024-01-18 21:02:55 · 532 阅读 · 0 评论 -
LeetCode解法汇总83. 删除排序链表中的重复元素
如果set中无该值,则需要判断头节点是否为空,为空则设置为头节点,否则插入到尾节点的后面。如果set中有该值,则无需处理,说明重复。删除所有重复的元素,使每个元素只出现一次。使用set存储所有遍历过的节点,给定一个已排序的链表的头。原创 2024-01-16 14:14:52 · 537 阅读 · 0 评论 -
LeetCode解法汇总82. 删除排序链表中的重复元素 II
如果不等于,则说明读到了一个新的节点,需要判断是否是重复的节点。num>1代表重复,也跳过。如果num=1,则需要把节点插入到筛选后的链表中。设置三个指针,分别代表头节点,筛选后链表的最后一个节点,以及未筛选链表的上一个节点。删除原始链表中所有重复数字的节点,只留下不同的数字。遍历链表,如果为空,则记录为链表的上一个节点。如果不为空,则判断值是否等于上一个节点。给定一个已排序的链表的头。如果等于,则num+1。原创 2024-01-15 19:13:37 · 575 阅读 · 0 评论