自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试算法记录<并查集、回溯+剪枝>

这两个月都在面试,算法方面,字节问的最多,不过都不难,虾皮问了一个最难的,腾讯没有问算法,其他公司问的都比较简单,这里简单记录一下两道个人觉得有点难度的。1.字节算法题题目:已知有如下的结构,表示商品编号及对应的价格,给定金额mount,求所有可能的商品组合使得刚好用完mount。这题和排列组合有点像,不过更复杂一点。涉及到所有组合,大概率都是需要回溯的,这里利用排序再剪枝以降低复杂度。const list = [ { id: 1, price: 5, }, {

2021-07-21 20:58:31 357

原创 js解leetcode(82)-中等

1.困于环中的机器人题目:在无限的平面上,机器人最初位于(0, 0)处,面朝北方。机器人可以接受下列三条指令之一:"G":直走 1 个单位 "L":左转 90 度 "R":右转 90 度机器人按顺序执行指令instructions,并一直重复它们。只有在平面中存在环使得机器人永远无法离开时,返回true。否则,返回false。思路:明确一点:如果执行完一轮指令之后,方向不是朝北,或者回到原点,那么都会成环。回到原点不多说。方向不是朝北呢?其实就是,如果方向不是朝北,那...

2021-04-09 17:32:34 292

原创 js解leetcode(81)-中等

1.多边形三角剖分的最低得分题目:给定N,想象一个凸N边多边形,其顶点按顺时针顺序依次标记为A[0], A[i], ..., A[N-1]。假设您将多边形剖分为 N-2 个三角形。对于每个三角形,该三角形的值是顶点标记的乘积,三角剖分的分数是进行三角剖分后所有 N-2 个三角形的值之和。返回多边形进行三角剖分后可以得到的最低分。思路:动态规划,可让dp[i][j]为第i个点到第j个点的三角形剖分的和,所以有dp[i][j] = max(dp[i][j], nums[i] * ...

2021-04-02 21:34:06 303

原创 js解leetcode(80)-中等

1.节点与其祖先的最大差值题目:给定二叉树的根节点root,找出存在于不同节点A和B之间的最大值V,其中V = |A.val - B.val|,且A是B的祖先。(如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B 的祖先)思路:在低估时,不断更新最大值和最小值即可时间复杂度O(n) 空间复杂度O(logn)var maxAncestorDiff = function (root, min = root?.val...

2021-03-30 23:03:47 190

原创 js解leetcode(79)-中等

1.链表中的下一个更大节点题目:可以先将链表中的节点值放入一个数组,然后就是一个单调栈了。从数组的尾部开始遍历,当栈顶元素小于等于当前节点值时,栈顶元素出栈,直到栈顶元素大于当前值或者栈为空。如果栈内没有值,则说明该元素对应的更大值是0;否则就是栈顶元素。然后将当前元素入栈。时间复杂度O(n),空间复杂度O(1)/** * Definition for singly-linked list. * function ListNode(val) { * this.val =

2021-03-28 15:29:29 130

原创 js解leetcode(78)-中等

1.前序遍历构造二叉树题目:返回与给定前序遍历preorder 相匹配的二叉搜索树(binary search tree)的根结点。(回想一下,二叉搜索树是二叉树的一种,其每个节点都满足以下规则,对于node.left的任何后代,值总 < node.val,而 node.right 的任何后代,值总 > node.val。此外,前序遍历首先显示节点node 的值,然后遍历 node.left,接着遍历 node.right。)题目保证,对于给定的测试用例,总能找到满足要求...

2021-03-25 22:23:53 132

原创 js解leetcode(77)-中等

1.腐烂的橘子题目:在给定的网格中,每个单元格可以有以下三个值之一:值0代表空单元格;值1代表新鲜橘子;值2代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回-1。思路:bfs。先记录所有腐烂的橘子的位置,以及新鲜橘子的数量n。然后从所有腐烂的橘子位置开始,每次往外扩散1个单位,每次扩散时遇到新鲜橘子才能继续扩散,否则停止。遇到新鲜橘子(1),将它置为腐烂的...

2021-03-23 23:56:44 171

原创 js解leetcode(76)-中等

1.不含AAA或BBB的字符串题目:给定两个整数A和B,返回任意字符串 S,要求满足:S 的长度为A + B,且正好包含A个 'a'字母与B个 'b'字母;子串'aaa'没有出现在S中;子串'bbb' 没有出现在S中。思路:因为不能连续出现3个相同的字符,所以可以优先拼接次数多的字符。先判断较长的字符是哪一个,然后分别用变量记录较多字符和较少字符的次数。为了保证后续字符尽可能平衡,每一次拼接,我们应当取较多字符Math.min(2,Math.c...

2021-03-20 15:51:15 187

原创 js解leetcode(75)-中等

1.和可被K整除的子数组题目:给定一个整数数组A,返回其中元素之和可被K整除的(连续、非空)子数组的数目。思路:这题和之前某题很像hhh,套路基本思路是,对于一个子数组而言。记录每一个下标的前缀和sum[i]。如果有i > j,且sum[i] - sum [j]0是k的整数倍,那么有[i,j]这个子数组满足条件。什么时候sum[i] - sum[j]是K的整数倍呢?二者对k的余数相等时。所以,记录前缀和,并记录余数是0-k的前缀和的数组的数量dp。对于 余数为0时,子...

2021-03-18 22:55:04 172

原创 js解leetcode(74)-中等

1.元音拼写检查器题目:在给定单词列表wordlist的情况下,我们希望实现一个拼写检查器,将查询单词转换为正确的单词。对于给定的查询单词query,拼写检查器将会处理两类拼写错误:大小写:如果查询匹配单词列表中的某个单词(不区分大小写),则返回的正确单词与单词列表中的大小写相同。例如:wordlist = ["yellow"], query = "YellOw": correct = "yellow"例如:wordlist = ["Yellow"], query = "yello...

2021-03-15 21:46:46 236

原创 js解leetcode(73)-中等

1.删列造序题目:给定由 n 个字符串组成的数组 strs,其中每个字符串长度相等。选取一个删除索引序列,对于 strs 中的每个字符串,删除对应每个索引处的字符。比如,有 strs = ["abcdef", "uvwxyz"],删除索引序列{0, 2, 3},删除后 strs 为["bef", "vyz"]。假设,我们选择了一组删除索引 answer,那么在执行删除操作之后,最终得到的数组的元素是按 字典序(strs[0] <= strs[1] <= strs[2] ...

2021-03-13 16:06:01 156

原创 js解leetcode(72)-中等

1.令牌放置题目:你的初始 能量 为P,初始 分数 为0,只有一包令牌 tokens 。其中 tokens[i] 是第 i 个令牌的值(下标从 0 开始)。令牌可能的两种使用方法如下:如果你至少有token[i]点 能量 ,可以将令牌 i 置为正面朝上,失去token[i]点 能量 ,并得到1分 。如果我们至少有1分 ,可以将令牌 i 置为反面朝上,获得token[i] 点 能量 ,并失去1分 。每个令牌 最多 只能使用一次,使用 顺序不限 ,不需 使用所有令牌...

2021-03-10 22:03:10 203

原创 js解leetcode(71)-中等

1.骑士拨号器题目:国际象棋中的骑士可以按下图所示进行移动: 这一次,我们将“骑士” 放在电话拨号盘的任意数字键(如上图所示)上,接下来,骑士将会跳N-1 步。每一步必须是从一个数字键跳到另一个数字键。每当它落在一个键上(包括骑士的初始位置),都会拨出键所对应的数字,总共按下N 位数字。你能用这种方式拨出多少个不同的号码?因为答案可能很大,所以输出答案模10^9 + 7。思路:先观察键盘,然后可以记录每个键对应的下一个键的可能性。然后用类似BFS的思路,记录每一...

2021-03-08 21:57:37 120

原创 js解leetcode(70)-中等

1.将字符串翻转到单调递增题目:如果一个由'0' 和 '1'组成的字符串,是以一些 '0'(可能没有 '0')后面跟着一些 '1'(也可能没有 '1')的形式组成的,那么该字符串是单调递增的。我们给出一个由字符 '0' 和 '1'组成的字符串S,我们可以将任何'0' 翻转为'1'或者将'1'翻转为'0'。返回使 S 单调递增的最小翻转次数。思路:先计算出字符串中0的数量v0和1的数量v1然后遍历每一个下标i,假设此下标之前的0是left,1是right。假定该位置...

2021-03-05 23:17:02 289

原创 js解leetcode(69)-中等

1.单词子集题目:我们给出两个单词数组 A和B。每个单词都是一串小写字母。现在,如果b 中的每个字母都出现在 a 中,包括重复出现的字母,那么称单词 b 是单词 a 的子集。 例如,“wrr” 是 “warrior” 的子集,但不是 “world” 的子集。如果对 B 中的每一个单词b,b 都是 a 的子集,那么我们称A 中的单词 a 是通用的。你可以按任意顺序以列表形式返回A 中所有的通用单词。思路:记录B中的每个单词,每个字符出现的最大频率。如果一个单词,满足这些B中...

2021-03-03 21:05:13 241 1

原创 js解leetcode(68)-中等

1.子数组的最小值之和题目:给定一个整数数组 arr,找到 min(b)的总和,其中 b 的范围为 arr 的每个(连续)子数组。由于答案可能很大,因此 返回答案模 10^9 + 7 。思路:假设当前最小值是A[i] 能形成的最小数组数集合是 group=[[],[]...],数量是 count ,后面来的 A[j]>A[i] 那么 A[j]与 group 中每个数组都能形成新的子数组,所以 加入 A[j] 后,还是A[i]为最小值,没变,以A[i]为底的最小子数组的 和为 coun.

2021-02-28 12:51:50 185

原创 ES2021新特性

目前,进入stage4的提案已基本确定,所以ES2021(也就是ES12)的新功能也基本确定了,来看一下吧。惯例,提案戳这1.String.prototype.replaceAll之前字符串实例,只有replace方法可以替换生成对应的字符串。第一个参数是匹配模式,可以是字符串,也可以是正则。如果第一个参数是字符串,那么replace方法最多只会替换一次所以之前的replace方法其实可以实现现在的replaceAll方法的功能,只需要在正则加上'g'的修饰符即可。const s

2021-02-27 16:37:31 2143

原创 js解leetcode(67)-中等

1.所有可能的满二叉树题目:满二叉树是一类二叉树,其中每个结点恰好有 0 或 2 个子结点。返回包含 N 个结点的所有可能满二叉树的列表。 答案的每个元素都是一个可能树的根结点。答案中每个树的每个结点都必须有 node.val=0。你可以按任何顺序返回树的最终列表。思路:首先明确,满二叉树的节点数量是奇数。然后,对于总数量为n的二叉树,根节点占一个节点,假设左节点有m个,那么右子树有n-1-m个。所以对于数量为n的二叉树,可以枚举所有的子树节点,。左子树1个节点,右子树是

2021-02-26 21:39:07 119

原创 js解leetcode(66)-中等

1.救生艇题目:第i个人的体重为people[i],每艘船可以承载的最大重量为limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为limit。返回载到每一个人所需的最小船数。(保证每个人都能被船载)。思路:先排序,然后取体重最大的人,如果此时体重最大的人+体重最小的人小于limit,说明这两个人可以在一艘船上,否则体重最大的人单独一搜.可以用数组也可以用双指针的方式遍历时间复杂度O(nlogn),空间复杂度O(logn)/** * @param {nu...

2021-02-23 21:32:37 187

原创 js解leetcode(65)-中等

1.优势洗牌题目:给定两个大小相等的数组A和B,A 相对于 B 的优势可以用满足A[i] > B[i]的索引 i的数目来描述。返回A的任意排列,使其相对于 B的优势最大化。思路:贪心排列A的数字。对于B中的数字,A对应的数字应该是大于该数字的最小值。对A和B进行排序,当A的第一个元素大于B中的第一个元素时,A弹出第一个元素,B移动到下一个元素去比;否则B不移动。小于的数字顺序不影响结果。时间复杂度O(nlogn),空间复杂度O(n)/** * @p...

2021-02-21 12:51:02 172

原创 js解leetcode(64)-中等

1.镜面反射题目:有一个特殊的正方形房间,每面墙上都有一面镜子。除西南角以外,每个角落都放有一个接受器,编号为0,1,以及2。正方形房间的墙壁长度为p,一束激光从西南角射出,首先会与东墙相遇,入射点到接收器 0 的距离为 q 。返回光线最先遇到的接收器的编号(保证光线最终会遇到一个接收器)。思路:将光纤经过的水平距离和垂直距离分开看,水平方向上每走p,垂直方向上就会走q。所以假设走了水平方向走了mq之后,遇到接收器,此时垂直方向是走了mq,且mq会被p整除。此时有两个变量需要...

2021-02-18 20:25:02 141

原创 js解leetcode(63)-中等

1.字母移位题目:有一个由小写字母组成的字符串 S,和一个整数数组 shifts。我们将字母表中的下一个字母称为原字母的 移位(由于字母表是环绕的, 'z'将会变成'a')。例如·,shift('a') = 'b',shift('t') = 'u',, 以及shift('z') = 'a'。对于每个shifts[i] = x, 我们会将 S中的前i+1个字母移位x次。返回将所有这些移位都应用到 S 后最终得到的字符串。思路:对于任意的S[i],它移位的长...

2021-02-15 12:56:00 179

原创 js解leetcode(62)-中等

1.推多米诺题目:一行中有 N 张多米诺骨牌,我们将每张多米诺骨牌垂直竖立。在开始时,我们同时把一些多米诺骨牌向左或向右推。每过一秒,倒向左边的多米诺骨牌会推动其左侧相邻的多米诺骨牌。同样地,倒向右边的多米诺骨牌也会推动竖立在其右侧的相邻多米诺骨牌。如果同时有多米诺骨牌落在一张垂直竖立的多米诺骨牌的两边,由于受力平衡, 该骨牌仍然保持不变。就这个问题而言,我们会认为正在下降的多米诺骨牌不会对其它正在下降或已经下降的多米诺骨牌施加额外的力。给定表示初始状态的字符串 "S"

2021-02-13 20:50:37 165

原创 js解leetcode(61)-中等

1.安排工作以达到最大收益题目:有一些工作:difficulty[i]表示第 i 个工作的难度,profit[i] 表示第 i 个工作的收益。现在我们有一些工人。worker[i] 是第 i 个工人的能力,即该工人只能完成难度小于等于 worker[i] 的工作。每一个工人都最多只能安排一个工作,但是一个工作可以完成多次。举个例子,如果 3 个工人都尝试完成一份报酬为 1 的同样工作,那么总收益为 $3。如果一个工人不能完成任何工作,他的收益为 $0 。我们能得到的最大收益是多少?.

2021-02-10 12:28:16 182

原创 js解leetcode(60)-中等

1.链表组件题目:给定链表头结点head,该链表上的每个结点都有一个 唯一的整型值 。同时给定列表G,该列表是上述链表中整型值的一个子集。返回列表G中组件的个数,这里对组件的定义为:链表中一段最长连续结点的值(该值必须在列表G中)构成的集合。思路:遍历节点的时候,记录当前组件的长度。如果当前节点在集合G里面,长度+1,否则长度重置为0,。然后每次比较Max和当前长度的大小即可时间复杂度O(n),空间复杂度O(1)/** * Definition for singl...

2021-02-08 10:35:28 371

原创 js解leetcode(59)-中等

1.分汤题目:有A和B 两种类型的汤。一开始每种类型的汤有N毫升。有四种分配操作:提供 100ml 的汤A 和 0ml 的汤B。提供 75ml 的汤A 和 25ml 的汤B。提供 50ml 的汤A 和 50ml 的汤B。提供 25ml 的汤A 和 75ml 的汤B。当我们把汤分配给某人之后,汤就没有了。每个回合,我们将从四种概率同为0.25的操作中进行分配选择。如果汤的剩余量不足以完成某次操作,我们将尽可能分配。当两种类型的汤都分配完时,停止操作。注意不存在先分配100 m...

2021-02-05 22:24:03 122

原创 js解leetcode(58)-中等

1.所有可能的路径题目:给一个有n个结点的有向无环图,找到所有从0到n-1的路径并输出(不要求按顺序)思路:dfs或者Bfs都行时间复杂度O(2^n*N2),空间复杂度O(2^n*N)/** * @param {number[][]} graph * @return {number[][]} */var allPathsSourceTarget = function(graph) { const res = []; const l = graph.lengt...

2021-02-03 21:52:33 275

原创 js解leetcode(57)-中等

1.多米诺和托米诺平铺题目:有两种形状的瓷砖:一种是2x1 的多米诺形,另一种是形如"L" 的托米诺形。两种形状都可以旋转。XX <- 多米诺XX <- "L" 托米诺X给定N 的值,有多少种方法可以平铺2 x N 的面板?返回值 mod 10^9 + 7。(平铺指的是每个正方形都必须有瓷砖覆盖。两个平铺不同,当且仅当面板上有四个方向上的相邻单元中的两个,使得恰好有一个平铺有一个瓷砖占据两个正方形。)思路:动态规划。对于长度为i的长方形,有两种可能的...

2021-01-31 13:56:12 139

原创 js解leetcode(56)-中等

1.森林中的兔子题目:森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在answers数组里。返回森林中兔子的最少数量。思路:原则上是,有同样数量其余颜色的兔子尽可能用同一种颜色,所以对于answer[i],用map记录之前出现过的answer的数量。如果之前出现过的数量等于当前的同颜色兔子数量,说明这种颜色已经被用完了,重置该数量对应的值为0;如果是第一次出现,则加上answer[i]+1(加一是因为要加上自己)时间复杂..

2021-01-29 22:13:41 143

原创 js解leetcode(55)-中等

1.重构字符串题目:给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。若可行,输出任意可行的结果。若不可行,返回空字符串。/** * @param {string} S * @return {string} */var reorganizeString = function(S) { const len=S.length; if(len===0) return "" //用于存放字符及其数量 let hashArr = new

2021-01-26 21:58:18 175

原创 js解leetcode(54)-中等

1.打开转盘锁题目:你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为'0','0' 变为 '9' 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 '0000' ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。字符串 t..

2021-01-24 13:14:41 216

原创 js解leetcode(53)-中等

1.行星碰撞题目:给定一个整数数组 asteroids,表示在同一行的行星。对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动)。每一颗行星以相同的速度移动。找出碰撞后剩下的所有行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相同,则两颗行星都会爆炸。两颗移动方向相同的行星,永远不会发生碰撞。思路:用一个栈记录行星,然后在遍历行星数组,先判断栈顶行星和当前行星的方向,如果不会发生碰撞,行星入栈;如果会发生碰撞,三种情

2021-01-21 22:46:50 189 1

原创 js解leetcode(52)-中等

1.账户合并题目:给定一个列表 accounts,每个元素 accounts[i]是一个字符串列表,其中第一个元素 accounts[i][0]是名称 (name),其余元素是 emails 表示该账户的邮箱地址。现在,我们想合并这些账户。如果两个账户都有一些共同的邮箱地址,则两个账户必定属于同一个人。请注意,即使两个账户具有相同的名称,它们也可能属于不同的人,因为人们可能具有相同的名称。一个人最初可以拥有任意数量的账户,但其所有账户都具有相同的名称。合并账户后,按以下格式返回账户:每...

2021-01-20 00:02:36 150

原创 js解leetcode(51)-中等

1.设计链表题目:设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性prev以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第index个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为val的节点。...

2021-01-16 22:35:18 147

原创 js解leetcode(50)-中等

1.冗余连接题目:在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v],满足u < v,表示连接顶点u和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边。答案边[u, v] 应满足...

2021-01-14 22:23:06 140

原创 js解leetcode(49)-中等

1.灯泡开关题目:现有一个房间,墙上挂有n只已经打开的灯泡和 4 个按钮。在进行了m次未知操作后,你需要返回这n只灯泡可能有多少种不同的状态。假设这 n 只灯泡被编号为 [1, 2, 3 ..., n],这 4 个按钮的功能如下:将所有灯泡的状态反转(即开变为关,关变为开)将编号为偶数的灯泡的状态反转将编号为奇数的灯泡的状态反转将编号为 3k+1 的灯泡的状态反转(k = 0, 1, 2, ...)思路:观察可知,对于第i个灯泡,它与第i+6个灯泡状态相同,所以最终的结...

2021-01-11 22:43:30 155

原创 js解leetcode(48)-中等

1.找到K个最接近的元素题目:给定一个排序好的数组arr ,两个整数 k 和 x ,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。整数 a 比整数 b 更接近 x 需要满足:|a - x| < |b - x| 或者|a - x| == |b - x| 且 a < b思路:按照与x的距离排序,然后取前k个。也可以用二分法找到最接近x的数,然后双指针往两边扩张,不过写起来麻烦时间复杂度O(nlogn),空间复杂度O(nlogn)\.

2021-01-08 23:39:23 213

原创 js解leetcode(47)-中等

1.Dota2参议院题目:Dota2 的世界里有两个阵营:Radiant(天辉)和Dire(夜魇)Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:禁止一名参议员的权利:参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。宣布胜利:如果参议员发现有权利投票的参议员都是同一个阵营的,他可以宣布胜利并决定在游戏中的有关变...

2021-01-06 22:38:57 145

原创 js解leetcode(46)-中等

1.求解方程题目:求解一个给定的方程,将x以字符串"x=#value"的形式返回。该方程仅包含'+',' - '操作,变量x和其对应系数。如果方程没有解,请返回“No solution”。如果方程有无限解,则返回“Infinite solutions”。如果方程中只有一个解,要保证返回值x是一个整数。思路:提取方程中的x因子和整数运算,然后进行算术的运算,求解时间复杂度O(n),空间复杂度O(1)/** * @param {string} equation * ...

2021-01-03 12:30:50 173 1

原创 js解leetcode(45)-中等

1.任务调度器题目:给你一个用字符数组tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。思路:因为有冷却时间,所以任务执行的最短时间是n.

2021-01-01 22:13:14 175

空空如也

空空如也

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

TA关注的人

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