算法
文章平均质量分 60
桔筐
这个作者很懒,什么都没留下…
展开
-
力扣-2972
给你一个下标从开始的整数数组nums。如果nums的一个子数组满足:移除这个子数组后剩余元素,那么我们称这个子数组为子数组。比方说,中的[3, 4]是一个移除递增子数组,因为移除该子数组后,变为[5, 6, 7],是严格递增的。请你返回nums中子数组的总数目。,剩余元素为空的数组也视为是递增的。指的是一个数组中一段连续的元素序列。10。原创 2024-07-11 17:19:14 · 522 阅读 · 0 评论 -
力扣206
给你单链表的头节点head,请你反转链表,并返回反转后的链表。原创 2024-07-04 10:38:12 · 347 阅读 · 0 评论 -
力扣503
给定一个循环数组nums的下一个元素是nums[0]),返回 nums中每个元素的。数字x的是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出-1。[2,-1,2]第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;第二个 1 的下一个最大的数需要循环搜索,结果也是 2。原创 2024-06-27 17:17:34 · 330 阅读 · 0 评论 -
力扣-2663
如果一个字符串满足以下条件,则称其为k2给你一个长度为n的美丽字符串s和一个正整数k。请你找出并返回一个长度为n的美丽字符串,该字符串还满足:在字典序大于s的所有美丽字符串中字典序最小。如果不存在这样的字符串,则返回一个空字符串。对于长度相同的两个字符串a和b,如果字符串a在与字符串b不同的第一个位置上的字符字典序更大,则字符串a的字典序大于字符串b。"abcd""abcc"dc"abda"字符串 "abda" 既是美丽字符串,又满足字典序大于 "abcz"。原创 2024-06-23 11:21:57 · 366 阅读 · 0 评论 -
力扣-522
给定字符串列表strs,返回其中的长度。如果最长特殊序列不存在,返回-1。定义如下:该序列为某字符串。s的可以通过删去字符串s中的某些字符实现。"abc""aebdc""aebdc""abc""aebdc""aebdc""aeb"""3-1给定字符串列表strs,返回其中的长度。如果最长特殊序列不存在,返回-1。定义如下:该序列为某字符串。s的可以通过删去字符串s中的某些字符实现。原创 2024-06-18 00:09:43 · 139 阅读 · 0 评论 -
力扣2779
给你一个下标从开始的整数数组nums和一个整数k。inums[i]数组的定义为数组中由相等元素组成的最长子序列的长度。对数组nums执行上述操作任意次后,返回数组可能取得的美丽值。你能对每个下标执行此操作。数组的定义是:经由原数组删除一些元素(也可能不删除)得到的一个新数组,且在此过程中剩余元素的顺序不发生改变。3在这个示例中,我们执行下述操作:- 选择下标 1 ,将其替换为 4(从范围 [4,8] 中选出),此时 nums = [4,4,1,2]。原创 2024-06-15 18:13:21 · 418 阅读 · 0 评论 -
力扣-2813
给你一个长度为n的二维整数数组items和一个整数k。,其中profiti和categoryi分别表示第i个项目的利润和类别。现定义items的的可以用计算,其中是子序列中所有项目的利润总和,是所选子序列所含的所有类别中不同类别的数量。你的任务是从items所有长度为k的子序列中,找出。用整数形式表示并返回items中所有长度恰好为k的子序列的最大优雅度。数组的子序列是经由原数组删除一些元素(可能不删除)而产生的新数组,且删除不改变其余元素相对顺序。17。原创 2024-06-15 17:34:56 · 359 阅读 · 0 评论 -
力扣-2786
给你一个下标从开始的整数数组nums和一个正整数x。你在数组的位置0ii < jjinums[i]ijnums[i]nums[j]x请你返回你能得到的得分之和。,你一开始的分数为nums[0]。13我们可以按顺序访问数组中的位置:0 -> 2 -> 3 -> 4。对应位置的值为 2 ,6 ,1 和 9。因为 6 和 1 的奇偶性不同,所以下标从 2 -> 3 让你失去 x = 5 分。总得分为:2 + 6 + 1 + 9 - 5 = 13。20。原创 2024-06-14 23:49:47 · 377 阅读 · 0 评论 -
力扣每日一题-2806
一开始,你的银行账户里有100块钱。给你一个整数,它表示你在一次购买中愿意支出的金额。在一个商店里,你进行一次购买,实际支出的金额会向的10的取整。换句话说,你实际会支付一个金额,满足是10的倍数且的值。如果存在多于一个最接近的10的倍数,是你的实际支出金额。请你返回一个整数,表示你在愿意支出金额为块钱的前提下,购买之后剩下的余额。0也是10的倍数。90这个例子中,最接近 9 的 10 的倍数是 10。所以你的账户余额为 100 - 10 = 90。80。原创 2024-06-13 15:48:57 · 156 阅读 · 0 评论 -
力扣-1953
给你n个项目,编号从0到n - 1。同时给你一个整数数组milestones,其中每个表示第i个项目中的阶段任务数量。一旦所有项目中的全部阶段任务都完成,那么你将停止工作;如果选择任意剩余任务都会导致违反上述规则,那么你也会。注意,由于这些条件的限制,你可能无法完成所有阶段任务。返回在不违反上面规则的情况下你能工作多少周。6一种可能的情形是:- 第 1 周,你参与并完成项目 0 中的一个阶段任务。- 第 2 周,你参与并完成项目 2 中的一个阶段任务。原创 2024-06-11 17:25:59 · 355 阅读 · 0 评论 -
力扣-826
你有n个工作和m个工人。给定三个数组:difficultyprofit和workeriprofit[i]iworker[i]iworker[i]每个工人只能安排工作,但是一个工作可以。$1$3$0返回在把工人分配到工作岗位后,我们所能获得的最大利润。100工人被分配的工作难度是 [4,4,6,6] ,分别获得 [20,20,30,30] 的收益。0。原创 2024-06-11 17:15:45 · 241 阅读 · 0 评论 -
力扣-2831
给你一个下标从开始的整数数组nums和一个整数k。如果子数组中所有元素都相等,则认为子数组是一个。注意,空数组是。从nums中删除最多k个元素后,返回可能的最长等值子数组的长度。是数组中一个连续且可能为空的元素序列。3最优的方案是删除下标 2 和下标 4 的元素。删除后,nums 等于 [1, 3, 3, 3]。最长等值子数组从 i = 1 开始到 j = 3 结束,长度等于 3。可以证明无法创建更长的等值子数组。4最优的方案是删除下标 2 和下标 3 的元素。原创 2024-06-11 16:56:33 · 344 阅读 · 0 评论 -
力扣-238
给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据数组nums之中任意元素的全部前缀元素和后缀的乘积都在整数范围内。请且在O( n)时间复杂度内完成此题。原创 2024-06-11 15:59:34 · 419 阅读 · 0 评论 -
力扣-1673
给你一个整数数组nums和一个正整数k,返回长度为k且最具的nums子序列。数组的子序列是从数组中删除一些元素(可能不删除元素)得到的序列。在子序列a和子序列b第一个不相同的位置上,如果a中的数字小于b中对应的数字,那么我们称子序列a比子序列b(相同长度下)更具。例如,[1,3,4]比[1,3,5]更具竞争力,在第一个不相同的位置,也就是最后一个位置上,4小于5。[2,6]原创 2024-06-11 15:44:47 · 314 阅读 · 0 评论 -
力扣每日一题-419
两艘战舰之间至少有一个水平或垂直的空位分隔 (即没有相邻的战舰)。遍历即可,遇到X时,由于是从上往下从左往右遍历只需要判断左边和上面一格即可。遍历即可,遇到X时,由于是从上往下从左往右遍历只需要判断左边和上面一格即可。表示甲板,其中,每个单元格可以是一艘战舰。换句话说,战舰只能按。只能水平或者垂直放置在。列)的形状建造,其中。原创 2024-06-11 14:39:17 · 239 阅读 · 0 评论 -
力扣每日一题-881
给定数组people。people[i]表示第i个人的体重 ,,每艘船可以承载的最大重量为limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为limit。返回承载所有人所需的最小船数。11 艘船载 (1, 2)33 艘船分别载 (1, 2), (2) 和 (3)44 艘船分别载 (3), (3), (4), (5)原创 2024-06-10 19:46:26 · 411 阅读 · 0 评论 -
力扣每日一题-3040
给你一个整数数组nums,如果nums包含2个元素,你可以执行以下操作中的numsnumsnums一次操作的是被删除元素的和。在确保的前提下,请你求出能进行多少次操作。请你返回按照上述要求可以进行的操作次数。3我们执行以下操作:- 删除前两个元素,分数为 3 + 2 = 5 ,nums = [1,2,3,4]。- 删除第一个元素和最后一个元素,分数为 1 + 4 = 5 ,nums = [2,3]。- 删除第一个元素和最后一个元素,分数为 2 + 3 = 5 ,nums = []。原创 2024-06-08 16:15:17 · 349 阅读 · 0 评论 -
力扣-73
给定一个m x n的矩阵,如果一个元素为,则将其所在行和列的所有元素都设为。请使用算法。原创 2024-06-07 20:38:08 · 284 阅读 · 0 评论 -
力扣每日一题-3067
给你一棵无根带权树,树中总共有n个节点,分别表示n个服务器,服务器从0到n - 1编号。同时给你一个数组edges,其中表示节点ai和bi之间有一条双向边,边的权值为weighti。再给你一个整数。如果两个服务器ab和c满足以下条件,那么我们称服务器a和b是通过服务器ca < ba!= cb!= ccacbcbca请你返回一个长度为n的整数数组count,其中count[i]表示通过服务器i的服务器对的。原创 2024-06-07 00:33:39 · 842 阅读 · 0 评论 -
力扣每日一题- 2938
桌子上有n个球,每个球的颜色不是黑色,就是白色。给你一个长度为n、下标从开始的二进制字符串s,其中1和0分别代表黑色和白色的球。在每一步中,你可以选择两个相邻的球并交换它们。返回「将所有黑色球都移到右侧,所有白色球都移到左侧所需的s = "101"1我们可以按以下方式将所有黑色球移到右侧:- 交换 s[0] 和 s[1],s = "011"。最开始,1 没有都在右侧,需要至少 1 步将其移到右侧。原创 2024-06-07 00:10:05 · 311 阅读 · 0 评论 -
力扣每日一题-1542
给你一个字符串s。请返回s中最长的的长度。s5"24241" 是最长的超赞子字符串,交换其中的字符后,可以得到回文 "24142"16"213123" 是最长的超赞子字符串,交换其中的字符后,可以得到回文 "231132"s = "00"2。原创 2024-05-22 00:53:00 · 602 阅读 · 0 评论 -
力扣1177
给你一个字符串s,请你对s的子串进行检测。每次检测,待检子串都可以表示为。我们可以子串,并从中选择k项替换成任何小写英文字母。如果在上述检测过程中,子串可以变成回文形式的字符串,那么检测结果为true,否则结果为false。返回答案数组answer[],其中answer[i]是第i个待检子串queries[i]的检测结果。注意:在替换时,子串中的每个字母都必须作为项进行计数,也就是说,如果且k = 2,我们只能替换其中的两个字母。(另外,任何检测都不会修改原始字符串s,可以认为每次检测都是独立的)原创 2024-05-21 17:46:53 · 368 阅读 · 0 评论 -
力扣每日一题-2244
用哈希表统计每种任务的个数,求最少的次数即是求最多能有几个3。难度级别为 2 的任务只有 1 个,但每一轮执行中,只能选择完成 2 个或者 3 个相同难度级别的任务。统计每种任务的个数,考虑用哈希表,每次我们有两个选择完成3/2个,要求最少的次数。可以证明,无法在少于 4 轮的情况下完成所有任务,所以答案为 4。- 第一轮,完成难度级别为 2 的 3 个任务。- 第二轮,完成难度级别为 3 的 2 个任务。- 第三轮,完成难度级别为 4 的 3 个任务。- 第四轮,完成难度级别为 4 的 2 个任务。原创 2024-05-15 00:13:03 · 250 阅读 · 0 评论 -
力扣每日一题-994
由于我们如果直接对原图(二维数组)进行遍历,会发现还未腐烂的提前腐烂。于是我们需要对原数组进行新建和修改,对其-2,使得-2为空,-1为未腐烂,0为腐烂。建立的新表,用t来表示当前要腐烂的橘子,t为次数;用f来进行判断遍历的结束,最后再判断是否有为腐烂的橘子。是一个层次遍历的问题,要求最短时间,考虑用dfs(深度优先遍历),根据不同的状态,修改腐烂后的状态。左下角的橘子(第 2 行, 第 0 列)永远不会腐烂,因为腐烂只会发生在 4 个方向上。因为 0 分钟时已经没有新鲜橘子了,所以答案就是 0。原创 2024-05-15 00:30:01 · 388 阅读 · 2 评论 -
力扣每日一题-1553
剩下的余数<=2,选择一天一个(当余数为2时n/2-1=n-1-1,两者相等)第 2 天:吃 6 个橘子,剩余橘子数 9 - 2*(9/3) = 9 - 6 = 3。第 2 天:吃 2 个橘子,剩余橘子数 3 - 2*(3/3) = 3 - 2 = 1。第 1 天:吃 3 个橘子,剩余橘子数 6 - 6/2 = 6 - 3 = 3。第 3 天:吃 2 个橘子,剩余橘子数 3 - 2*(3/3) = 3 - 2 = 1。第 3 天:吃掉剩余 1 个橘子,剩余橘子数 1 - 1 = 0。你总共有 6 个橘子。原创 2024-05-13 00:52:19 · 507 阅读 · 2 评论 -
力扣每日一题-2391
由于垃圾都会被回收,所以所有的字符串长度即为回收垃圾的时间,采用倒序遍历可以直接确定者三种垃圾的路线长度从而确定其花费的时间。主要分为了回收垃圾的时间和移动的时间,垃圾都会被回收1单位1分钟,移动要考虑是否到最后的点位,这将决定这三种垃圾各自的路程。收拾玻璃的垃圾车总共花费 13 分钟收拾完所有的玻璃垃圾。收拾玻璃的垃圾车花费 15 分钟收拾完所有的玻璃垃圾。收拾纸的垃圾车总共花费 8 分钟收拾完所有的纸垃圾。收拾纸的垃圾车花费 15 分钟收拾完所有的纸垃圾。请你返回收拾完所有垃圾需要花费的。原创 2024-05-11 22:53:20 · 487 阅读 · 0 评论 -
蓝桥杯练习:相乘尾零,阶乘约数,c++
不同的i相乘得出多少种组合;如a[i]+(a[i]*a[i+1])即表示i*a[i]*(i+1)a[i+1]的约数。统计素数(即最小约数)的个数进行组合(相乘)即可得到n!要计算100个数相乘后末尾0的个数,可以考虑拆分成2和5的个数;相乘累加,a[i]的值可以表示(i*a[i]) 有多少个约数。有100个整数,请你求出它们的乘积的末尾有多少个零?利用乘法交换律可知有n对2*5末尾就有多少个零。都是利用拆分的方式,将大数拆分成最小的单位。任何一个合数都是由任意个素数相乘得来,即素数为数的最小因数。原创 2023-11-26 16:25:58 · 400 阅读 · 2 评论