自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode 1584. 连接所有点的最小费用

连接点 [x_i, y_i] 和点 [x_j, y_j] 的费用为它们之间的 曼哈顿距离 :|x_i – x_j| + |y_i – y_j| ,其中 |val| 表示 val 的绝对值。给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [x_i, y_i]。只有任意两点之间 有且仅有 一条简单路径时,才认为所有点都已连接。Python代码(Kruskal算法)(附并查集模板)最小生成树+Prim算法/Kruskal算法。Python代码(附Prim算法模板)

2024-10-21 11:50:36 356

原创 Leetcode 1926. 迷宫中离入口最近的出口

给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 ‘.’ 表示)和墙(用 ‘+’ 表示)。同时给你迷宫的入口 entrance ,用 entrance = [entrancerow, entrancecol] 表示你一开始所在格子的行和列。第三步,BFS模板进行BFS遍历,并记录BFS的层数,BFS遍历找到出口时退出遍历,此时的层数即为步数;请你返回从 entrance 到最近出口的最短路径的 步数 ,如果不存在这样的路径,请你返回 -1。

2024-10-20 13:43:55 387

原创 Leetcode 1135. 最低成本连通所有城市

给你整数 n 和一个数组 conections,其中 connections[i] = [x_i, y_i, cost_i] 表示将城市 x_i 和城市 y_i 连接所要的cost_i(连接是双向的)。返回连接所有城市的最低成本,每对城市之间至少有一条路径。如果无法连接所有 n 个城市,返回 -1。第二步,根据Prim算法模板算出最小生成树的节点和最小权值和,判断最小生成树是否存在并返回结果。想象一下你是个城市基建规划者,地图上有 n 座城市,它们按以 1 到 n 的次序编号。第一步,构建图的邻接表。

2024-10-19 10:14:19 495

原创 Leetcode 1129. 颜色交替的最短路径

返回长度为 n 的数组 answer,其中 answer[X] 是从节点 0 到节点 X 的红色边和蓝色边交替出现的最短路径的长度。如果不存在这样的路径,那么 answer[x] = -1。对于子节点加入队列的条件中加上父节点和子节点的颜色标识之和为1,这样就能保证路径的颜色交替条件。同时在过程中记录递归层数,即为步数,记录到result数组中。给定一个整数 n,即有向图中的节点数,其中节点标记为 0 到 n – 1。图中的每条边为红色或者蓝色,并且可能存在自环或平行边。标记红色的边为0,蓝色的边为1。

2024-10-19 10:12:01 655

原创 Leetcode 841. 钥匙和房间

最初,除 0 号房间外的其余所有房间都被锁住。你的目标是进入所有的房间。然而,你不能在没有获得钥匙的时候进入锁住的房间。给你一个数组 rooms 其中 rooms[i] 是你进入 i 号房间可以获得的钥匙集合。当你进入一个房间,你可能会在里面找到一套 不同的钥匙,每把钥匙上都有对应的房间号,即表示钥匙可以打开的房间。你可以拿上所有钥匙去解锁其他房间。第二步,递归任务:从node节点开始访问图中的节点,并使用visited集合记录访问的节点。第三步,根据访问的节点个数判断是否可以访问所有的房间。

2024-10-18 10:42:22 462

原创 Leetcode 721. 账户合并

请注意,即使两个账户具有相同的名称,它们也可能属于不同的人,因为人们可能具有相同的名称。给定一个列表 accounts,每个元素 accounts[i] 是一个字符串列表,其中第一个元素 accounts[i][0] 是 名称 (name),其余元素是 emails 表示该账户的邮箱地址。合并账户后,按以下格式返回账户:每个账户的第一个元素是名称,其余元素是 按字符 ASCII 顺序排列 的邮箱地址。第一步,构建email->username的映射,同时构建邮箱之间的并查集(同一个账户的邮箱属于一个集合)

2024-10-18 10:39:20 1366

原创 Leetcode 802. 找到最终的安全状态

有一个有 n 个节点的有向图,节点按 0 到 n – 1 编号。图由一个 索引从 0 开始 的 2D 整数数组 graph表示, graph[i]是与节点 i 相邻的节点的整数数组,这意味着从节点 i 到 graph[i]中的每个节点都有一条边。如果一个节点没有连出的有向边,则该节点是 终端节点。如果从该节点开始的所有可能路径都通向 终端节点 ,则该节点为 安全节点。逆向拓扑排序法 / DFS+三色染色法。Python代码(DFS+三色染色法)Python代码(逆向拓扑排序法)

2024-10-17 14:59:31 465

原创 Leetcode 1514. 概率最大的路径

给你一个由 n 个节点(下标从 0 开始)组成的无向加权图,该图由一个描述边的列表组成,其中 edges[i] = [a, b] 表示连接节点 a 和 b 的一条无向边,且该边遍历成功的概率为 succProb[i]。如果不存在从 start 到 end 的路径,请 返回 0。指定两个节点分别作为起点 start 和终点 end ,请你找出从起点到终点成功概率最大的路径,并返回其成功概率。第二步,通过Dijkstra算法算出单源最长路径,将路径相加变成路径相乘。Dijkstra算法+优先队列优化。

2024-10-17 14:56:48 590

原创 Leetcode 1857. 有向图中最大颜色值

给你一个字符串 colors ,其中 colors[i] 是小写英文字母,表示图中第 i 个节点的 颜色 (下标从 0 开始)。同时给你一个二维数组 edges ,其中 edges[j] = [a_j, b_j] 表示从节点 a_j 到节点 b_j 有一条 有向边。图中一条有效 路径 是一个点序列 x_1 -> x_2 -> x_3 -> …-> x_k ,对于所有 1 <= i < k ,从 x_i 到 x_i+1 在图中有一条有向边。dp[i][j]为以i节点结尾的路径的颜色j的最大数量。

2024-10-16 10:38:55 617

原创 Leetcode 1489. 找到最小生成树里的关键边和伪关键边

给你一个 n 个点的带权无向连通图,节点编号为 0 到 n-1 ,同时还有一个数组 edges ,其中 edges[i] = [fromi, toi, weighti] 表示在 fromi 和 toi 节点之间有一条带权无向边。无向图的连通性质:取权值为w的边,让小于w的边构成一个一个的连通分量comps,将每个连通分量comp作为一个节点,将w大小的节点与comps这些节点重新构建一个图,记为compG。请注意,你可以分别以任意顺序返回关键边的下标和伪关键边的下标。解题步骤请看代码注释。

2024-10-15 18:03:55 527

原创 Leetcode 1168. 水资源分配优化

对于每个房子 i,我们有两种可选的供水方案:一种是直接在房子内建造水井,成本为 wells[i – 1] (注意 -1 ,因为 索引从0开始 );另一种是从另一口井铺设管道引水,数组 pipes 给出了在房子间铺设管道的成本,其中每个 pipes[j] = [house1_j, house2_j, cost_j] 代表用管道将 house1_j 和 house2_j连接在一起的成本。第二步,使用Prim算法模板或者Kruskal算法模板解除最小生成树的权值和(详情可以看下代码的注释)

2024-10-14 11:42:11 600

原创 Leetcode 1203. 项目管理

有 n 个项目,每个项目或者不属于任何小组,或者属于 m 个小组之一。group[i] 表示第 i 个项目所属的小组,如果第 i 个项目不属于任何小组,则 group[i] 等于 -1。项目和小组都是从零开始编号的。可能存在小组不负责任何项目,即没有任何项目属于这个小组。如果存在多个解决方案,只需要返回其中任意一个即可。如果没有合适的解决方案,就请返回一个 空列表。第二步,构建组间邻接表和组内邻接表。第一步,-1的组的重新定义。第三步,组间拓扑排序。第四步,组内拓扑排序。

2024-10-13 12:32:36 548

原创 Leetcode 1192. 查找集群内的关键连接

力扣数据中心有 n 台服务器,分别按从 0 到 n-1 的方式进行了编号。它们之间以 服务器到服务器 的形式相互连接组成了一个内部集群,连接是无向的。用 connections 表示集群网络,connections[i] = [a, b] 表示服务器 a 和 b 之间形成连接。任何服务器都可以直接或者间接地通过网络到达任何其他服务器。关键连接 是在该集群中的重要连接,假如我们将它移除,便会导致某些服务器无法访问其他服务器。构建tarjan算法的模板,构建图graph,然后获取桥即可,详情请看代码中的注释。

2024-10-12 12:42:38 317

原创 Leetcode 839. 相似字符串组【附并查集模板】

注意,”tars” 和 “arts” 是在同一组中,即使它们并不相似。“rats” 和 “arts” 也是相似的,但是 “star” 不与 “tars”,”rats”,或 “arts” 相似。第一步,构建检测两个字符串是否相似的判断函数,实现该功能只需要统计俩字符串中不相等字符的个数,因为题目已经规定每个字符串的都是同一个字符串的异位词,如果不相等的字符个数等于2,则代表相似,反之,不相似。第三步,遍历并查集的roots字典,获取构建的集合的个数(键值相等的键值对数即为集合个数),集合的个数即为题解。

2024-10-11 10:26:47 448

原创 Leetcode 864. 获取所有钥匙的最短路径

BFS的使用队列存储遍历项,遍历的项为结构为(x坐标,y坐标,当前步数,当前已获取的钥匙的状态字符串),同时使用visited集合存储已经访问的不可重复状态,访问项结构为(x坐标,y坐标,当前已获取的钥匙的状态字符串);这里BFS的判断是否将下一个点(nx,ny)加入到队列的逻辑相对于普通的BFS更复杂,因为当碰到钥匙时,其前面的路径上的部分点是可以重复访问的,所以的前面的visited最后加上了keys项。换言之,每个锁有唯一对应的钥匙,每个钥匙也有唯一对应的锁。返回获取所有钥匙所需要的移动的最少次数。

2024-10-10 14:17:16 718

原创 Leetcode 18. 四数之和

第三步,遍历获取四个数字中的前两个数字。如果i处的值和nums最后三个数字的和小于target,则i和后面的数的组合的和都会小于target,跳过该轮循环遍历下一个i。如果四个数字的组合等于target,则将组合加入到result数组中,同时值得注意的是为了防止出现重复数组被放到结果数组中,需要让left指针向右移,最终让left指向的值不等于刚才的值的位置,同理的也需要让right向左移直到指向与刚才不相等的值的位置。第一步,边界条件判断,如果nums的长度小于4,则不可能组合成合法的组合,返回空数组。

2024-10-09 10:24:52 580

原创 Leetcode 37. 解数独

第一步,使用数组记录每一行、每一列、每一块的各个数字的存在状态,分别记为rows、cols、blocks,其中rows[i][j]=True表示j+1数字在下标为i的行中,反之亦然,cols和blocks也同理。与此同时,使用spaces记录所有为空的点的坐标,在后续的回溯中将其遍历填充。注意:在递归的过程中,会将board进行修改,最终的回溯退出时,构建的数独为合法数独组合,此时的board即为题解,由于题目已经声明了数独一定有解,所以spaceIndex=0时的回溯函数一定返回True。

2024-10-08 10:44:21 971

原创 Leetcode 10. 正则表达式匹配

第二步,状态初始化。初始化当匹配字符串为空时的匹配状态(即j=0时的状态),因为除了原字符串为空时,dp[0][0]=True,其余的情况下dp[x][0]=False,所以只需要初始化dp[0][0]=True即可。当判断前i个字符和前j个匹配字符是否匹配时,这里先预先定义俩字符匹配为匹配字符为.或者匹配字符和原字符两者相等。给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。dp[i][j]为s的前i个字符串和p的前j个字符串是否匹配。

2024-10-07 11:11:12 498

原创 Leetcode 1802. 有界数组中指定下标处的最大值

第三步,构建check函数,这里的check函数判断nums[index]为indexVal条件下,贪心构建的数组和是否小于等于maxSum。红:nums[index]的条件下,numsSum<=maxSum,蓝:numsSum>maxSum。第一步,确定二分的对象,由于numsSum随nums[index]单调递增,所以可以对nums[index]作为二分对象,numsSum作为二分的判断条件。nums[index]越小,numsSum越小,通过该单调性可以进行二分查找nums[index]

2024-10-06 10:30:15 493

原创 Leetcode 1283. 使结果不超过阈值的最小除数

第三步,红蓝染色法特征定义。红:在除数mid下,除数和大于threshold的项,蓝:在除数mid下,除数和小于等于threshold的项。给你一个整数数组 nums 和一个正整数 threshold ,你需要选择一个正整数作为除数,然后将数组里每个数都除以它,并对除法结果求和。判断在divisor除数的条件下,其除数的向上取整的和是否大于threshold。选择的除数越大,除数和也会越小,这是一个递减的过程,所以可以使用二分查找的方法。第一步,初始化除数的边界值,最小为1,最大为nums中的最大值。

2024-10-05 11:16:49 389

原创 Leetcode 1011. 在 D 天内送达包裹的能力

红:装载量不能保证在days天任务,蓝:装载量能保证在days天内完成任务。传送带上的第 i 个包裹的重量为 weights[i]。我们装载的重量不会超过船的最大运载重量。第二步,设计检测一个装载量mid是否能在days天完成任务的程序。第一步,初始化装载量的边界值left和right为weights的最大值和和。返回能在 days 天内将传送带上的所有包裹送达的船的最低运载能力。传送带上的包裹必须在 days 天内从一个港口运送到另一个港口。二分查找找到第一个在days天内能完成装载任务的装载量。

2024-10-05 11:15:07 427

原创 Leetcode 1631. 最小体力消耗路径

一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1) (注意下标从 0 开始编号)。你每次可以往 上,下,左,右 四个方向之一移动,你想要找到耗费 体力 最小的一条路径。红:在当前体力消耗值a下,不能完成从左上角到右下角的任务的项,蓝:在当前体力消耗值下,能完成任务的项。第二步,定义check函数,判断体力值HP是否能完成从左上角到右下角的任务,使用广度有效搜索的方法判断是否能到达。第一步,初始化体力消耗值的边界值,最小为0,最大为10。

2024-10-05 11:13:17 843

原创 Leetcode 1498. 满足条件的子序列数目

第三步,遍历第一个值i,通过二分法找到最后一个j使得nums[i]+nums[j]<=target,累加2**(j-i)即为题解(注意取模)请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目。由于答案可能很大,请将结果对 109 + 7 取余后返回。给你一个整数数组 nums 和一个整数 target。遍历第一个元素,以第一个元素为锚,二分查找第二个边界条件。第二步,预处理2的n次方的取模值,应用的原理是(a。第一步,将数组进行升序排列。

2024-10-04 11:41:10 352

原创 Leetcode 540. 有序数组中的单一元素

第一步,确定红蓝染色的特征。特征一:红:位置i处值与处于同一对的元素相等;蓝:位置i处值与处于同一对的元素不相等(如果i为奇数,相邻元素取右边的偶数,反之取左边边的奇数)。特征二:左闭右开,left-1始终指向红色,right始终指向蓝色。注意:标准的二分模板会出现索引超范围问题,为了解决超限问题,可以在尾部添加一个不能取到的值。给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。

2024-10-03 10:32:58 341

原创 Leetcode 2300. 咒语和药水的成功对数

第二步,遍历spells,对每个spell,使用二分法获取第一个potions[i]+spell >= success的i,对应的spell的成功组合数即为len(potions)-i,将结果一项一项添加到结果数组中,最后返回结果数组。从spells中遍历每一个魔法spell,并用二分法从升序排列后的potions中找到第一个potions[i]+spell >= success的i,len(potions)-i即为返回数组对应魔法的成功组合数。第一步,将药水数组进行升序排列。

2024-10-03 10:30:18 588

原创 Leetcode 275. H 指数 II

给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数,citations 已经按照 升序排列。计算并返回该研究者的 h 指数。h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (n 篇论文中)至少 有 h 篇论文分别被引用了至少 h 次。第二步,使用二分查找的红蓝染色法+未标记的区间采用左闭右闭方式,找到最后一个citations[i]>=i,对应的i+1即为题解。

2024-10-02 10:46:27 837

原创 Leetcode 611. 有效三角形的个数

第二步,从0至length-3遍历第一条边i,如果边i长度为0,在跳过此次循环;从i至length-2遍历第二条边j,使用二分法找到在j+1至length-1之间的最后一个k,使nums[i]+nums[j]>nums[k]的,根据k和j获取此次的合法组合数,循环将所有的合法组合数进行累加,最终的累加值即为题解。升序排列后,去两条边a和b,取b后面的第三条边c;a+c>b和b+c>a一定成立,只需要保证a+b>c,则a、b、c就可以构成一个合法三角形。第一步,将nums进行升序排列。

2024-10-01 10:41:24 429

原创 Leetcode 875. 爱吃香蕉的珂珂

如果这堆香蕉少于 k 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。第三步,定义check的判断函数,如果速度是speed,那么吃完所有的香蕉需要的总时间即为每堆香蕉数除以速度并上取整的和,如果总时间小于等于h,则可以吃完,反之,吃不完。因为吃的速度在1到max(piles)之间,且可以判断某个速度下是否能吃完,所以可以使用二分法。第四步,根据check函数和左闭右闭的红蓝染色法二分模板进行编码获得最终的left,最终的left即为题解。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。

2024-09-30 10:24:44 387

原创 Leetcode 981. 基于时间的键值存储

第二步,构建get函数,如果key不在哈希表中,直接返回空字符串;需要找到最后一个小于等于timestamp的索引r,其对应的值即为最终结果,该值也可能不存在,即r=-1,使用二分查找的红蓝染色法(左开右开区间)很容易可以获取r的值,最终如果r=-1,则返回空字符串,否则返回tMap[key][1][r],即r对应的值。第一步,设计存储数据结构tMap并构建set函数,这里采用哈希表设计存储结构,键为传入的key,值为二维数组arr,arr[0]记录timestamp,arr[1]记录传入的value值。

2024-09-30 10:22:26 492

原创 Leetcode 887. 鸡蛋掉落

上下两段楼层的步骤是分别是一个随当前楼层x的递减函数dp(k,n-x)和递增函数dp(k-1,x-1),所以可以用二分法找到上下两段楼层中最大的步骤数的最小值。对1到n的x个位置,如果x处碎了,则找下面的x-1段的最小操作数dp[x-1],同时次数的蛋只剩下k-1个;第一步,状态定义,这里的状态函数的方式,因为状态转移时即会用到大的n状态,也会用到小的n的状态。已知存在楼层 f ,满足 0 <= f <= n ,任何从 高于 f 的楼层落下的鸡蛋都会碎,从 f 楼层或比它低的楼层落下的鸡蛋都不会破。

2024-09-29 12:46:13 526

原创 Leetcode 1235. 规划兼职工作

dp[i]=max(dp[i-1],dp[k]+profit[i-1]) (profit[i-1]为第i个工作的报酬;假设从0到i-2工作中,最后一个endTime小于等于i-1工作的startTime的工作下标为j,则k=j+1)。这里有 n 份兼职工作,每份工作预计从 startTime[i] 开始到 endTime[i] 结束,报酬为 profit[i]。如果你选择的工作在时间 X 结束,那么你可以立刻进行在时间 X 开始的下一份工作。dp[i]为前i个兼职工作的最大报酬。

2024-09-28 10:08:18 448

原创 Leetcode 154. 寻找旋转排序数组中的最小值 II

如果小于right指向的值,则一定在右非递减区间,但是这里的right不能更新为mid-1,因为mid-1可能是红色区域,但是right不能指向红色区域,所以将right更新mid处。如果right和mid处值相等,此时mid可能是红色区域也可能是蓝色区域,所以right自减1是最保险的策略。注意:这里如果nums[mid] < nums[right]的情况不好处理,可以去掉这一步的判断,在nums[mid] <= mid[right]时,直接right自减1,一样能AC,且结果差不了多少。

2024-09-27 14:48:24 761

原创 Leetcode 706. 设计哈希映射

第三步,定义插入函数,首先求key的哈希值h,并找到data中h位置的链表,如果key已经在该链表中,则将value进行更新,否则将key、value加入到该链表中。第四步,定义查找函数,首先求key的哈希值h,并找到data中h位置的链表,如果key已经在该链表中,则返回对应的值,如果不存在,则返回-1。第五步,定义删除函数,首先求key的哈希值h,并找到data中h位置的链表,如果key已经在该链表中,则删除对应项并返回。第二步,定义哈希函数,本题采用的最简单的除余函数。

2024-09-26 11:37:34 490

原创 Leetcode 622. 设计循环队列

循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。Python代码 – 单链表法。Python代码 – 数组法。C++代码 – 单链表法。数组法 / 单链表法。

2024-09-26 11:32:24 814

原创 Leetcode 707. 设计链表

第五步,从head开始遍历index次获取下标为index的节点,并在该节点的前面添加上新节点,如果获取到的节点为None,说明index超出范围了,不能添加,返回-1。第六步,也是从head开始遍历index次获取需要删除的节点,然后删除,需要注意的是如果获取到的需要删除的节点是尾部哑结点,则不删除,因为此时索引超出范围了。第三步,遍历链表index次,从head节点开始,可以获取index下标的节点,如果获取的节点为尾部哑结点,直接退出返回-1,因为超出范围了。假设链表中的所有节点下标从 0 开始。

2024-09-26 11:26:55 1021

原创 Leetcode 1472. 设计浏览器历史记录

第三步,当回退时,只需从backStack栈顶弹出,同时将弹出的url加到forwardStack栈顶即可(需要保证backStack不为空,因为栈顶为当前页面必须保证存在)第四步,当前进时,只需从forwardStack栈顶弹出url并添加到backStack栈顶(直到forwardStack为空,前进访问的url可以没有)第二步,当访问新url时,直接将url添加到backStack顶部,为新的当前页面,同时清空forwardStack栈中前进访问的url。第一步,设计双栈数据结构。

2024-09-25 10:43:05 411

原创 Leetcode 1396. 设计地铁系统

设计俩哈希表进行存储: 第一张哈希表(临时记录进站信息用): 用户ID->(最近的进站站点,最近的进站时间);第二张哈希表(直接对应getAverageTime函数,快速计算平均时间用): (进站ID,出站ID)->(总时间,总人数)。第二步,当用户id进入stationName站时,将该用户的进站站点和进入时间信息记录到map1。第四步,直接根据出站和进站信息获取该路线的总时间和总人数,相除即可获取平均时间。第三步,当用户出站时,将map2中(出站,进站)路线的总时间和总人数更新一下。

2024-09-25 10:40:02 891

原创 Leetcode 43. 字符串相乘

第二步,m位数乘以n位数,最终结果不会超过m+n位数,所以将结果用一个m+n长度的数组arr进行存储。同时num1[i]*num2[j]可以认为是arr[i+j+1]的未进位时的值的组成部分。所以让乘数num1[i]*num2[j]的值加到arr[i+j+1]上。给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。第三步,第二步获取的是未进位的arr数值数组,在这一步,从后往前遍历,将数组中各个位进行进位操作。第一步,临界值处理。

2024-09-24 11:04:02 452

原创 Leetcode 445. 两数相加 II

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。第二步,这里差不多是一个模板,数组数字的相加,循环遍历进行相加进位,直到数组都为空+进位为0。你可以假设除了数字 0 之外,这两个数字都不会以零开头。第一步,将两个数字链表转化为数组。

2024-09-24 11:01:15 356

原创 Leetcode 65. 有效数字

例如,下面的都是有效数字:”2″, “0089”, “-0.1”, “+3.14”, “4.”, “-.9”, “2e10”, “-90E3”, “3e+7”, “+6e-1”, “53.5e93”, “-123.456e789″,而接下来的不是:”abc”, “1a”, “1e”, “e3”, “99e2.5”, “–6”, “-+3”, “95a54e53″。第一步,进行状态定义,并设计好状态转移图(这是最难也是最重要的一步,这步错了或者设计不合理,后面也就barbecue了)

2024-09-23 13:22:46 505

空空如也

空空如也

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

TA关注的人

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