LeetCode
文章平均质量分 95
记录LeetCode的各种题目,包括周赛
a碟
这个作者很懒,什么都没留下…
展开
-
【LeetCode周赛】LeetCode第375场周赛
不难发现,这样会有很多次重复的计算,比如对于上述例子,若选择下标为。是被重复计算过的,所以,对于拓展后的右端点的计算,我们可以将右端点设置为,该区间的。个最大元素的子数组,是可以任意拓展的,因为拓展是不会影响其满足题目要求的。子数组,如果不存在包含了相同数字的两个子数组,则认为是一种好分割方案。根据这一点,我们可以先计算出每一个数字出现的最左端点和最右端点,的最大值,这样时间复杂度过高,那么我们使用快速幂的方法。合并区间后,剩下的若干个区间,相互之间不包含相同的数字。的最大数为一组时,这个子数组为,原创 2023-12-10 12:42:46 · 255 阅读 · 1 评论 -
【LeetCode周赛】LeetCode第374场周赛
进行判断,符合条件的子串需要满足每个字符恰好出现k 次,一共只有26个字符,所以我们可以枚举一共有。首先,根据完美字符串中所述,相邻字符在字母表中的顺序。这是一个很简单的模拟题,直接遍历整个数组,判断。划分为多个组,每个组中是符合这个条件的字符串。的窗口,判断这个窗口种每个字符是否都只出现了。根据这一点要求,就可以将字符串。,这样,这个问题就变成了,有一个大小为。原创 2023-12-04 10:16:13 · 247 阅读 · 0 评论 -
【LeetCode周赛】LeetCode第373场周赛
即下标为0,5,4的三个数。可以用set来存下来这几个下标,存入后是按照顺序排列的,然后直接放入这几个数字即可。不难发现,其实左移,右移后如果初始矩阵和最终矩阵完全相同,那么左移,右移是等价的,比如对于下标为j的数,右移后相等即。所以本题,我们的目的就是要得到若干个这样的组,对每个组里面按照从小到大的顺序排序,就是最终的结果。我们可以提前维护一个前缀的元音,辅音字母的数量,那么可以在。的时间复杂度下,得到一个区间的元音,辅音数量,再按照题目意思进行判断即可。数组的值,从小到大排序后,原来的下标的序列。原创 2023-11-27 11:21:40 · 308 阅读 · 0 评论 -
【LeetCode周赛】LeetCode第371场周赛
要么就是。原创 2023-11-13 09:57:15 · 182 阅读 · 0 评论 -
【LeetCode周赛】LeetCode第370场周赛
一场比赛中共有 n 支队伍,按从 0 到 n - 1 编号。给你一个下标从 0 开始、大小为 n * n 的二维布尔矩阵 grid。对于满足 0原创 2023-11-06 12:29:15 · 164 阅读 · 0 评论 -
【LeetCode周赛】LeetCode第369场周赛
解释:可以执行下述递增运算,使 nums 变为美丽数组: 选择下标 i= 1 ,并且将 nums[1] 的值加 1 -> [2,4,0,0,2]。长度大于或等于 3 的子数组为 [2,4,0], [4,0,0], [0,0,4], [2,4,0,0], [4,0,0,4], [2,4,0,0,4]。长度大于或等于 3 的子数组为 [0,1,5]、[1,5,3]、[0,1,5,3]。nums[1]、nums[2]、nums[3]、nums[4] 和 nums[5] 的第 3位的值为 1。原创 2023-10-30 11:11:32 · 263 阅读 · 0 评论 -
【LeetCode周赛】LeetCode第368场周赛
因为我们已经确定了能够拆分为k和k+1的组合,p=cnt[x]/k,v=cnt[x]%k,先拆成了p个k,剩下数字v,其实就是v有几个,那么就可以将多少个v个k加一变成k+1。,14=4+4+4+2=5+5+4,15=4+4+4+3=5+5+5,而16=4+4+4+4,不能由5表示了,可以想到,比如说cnt[x]=13,k=4,那么13=4+4+4+1,多出来的这一个1可以丢进前面的某一个4中,同理。比如15=5+5+5,16=5+5+5+1=4+4+4+4,13=5+5+3=5+4+4。原创 2023-10-23 08:47:03 · 264 阅读 · 0 评论 -
【LeetCode周赛】LeetCode第365场周赛
解释:在这个例子中 infinite_nums =[1,1,1,2,3,1,1,1,2,3,1,1,…解释:下标三元组 (1, 2, 4) 的值是 (nums[1] -nums[2]) * nums[4] = 133。解释:唯一的下标三元组 (0, 1, 2) 的值是一个负数,(nums[0] -nums[1]) * nums[2] = -3。因此,答案是 0。解释:唯一的下标三元组 (0, 1, 2) 的值是一个负数,(nums[0] -nums[1]) * nums[2] = -3。原创 2023-10-02 16:00:05 · 332 阅读 · 0 评论 -
【LeetCode周赛】LeetCode第364场周赛
根据此题n的数据范围,可以考虑暴力做法,对于一个山状数组,只要我们能够找到"山峰"这个点,山峰i的高度h[i]肯定是当前maxHeights[i]的值,然后往左边逐渐递减,左边每一个塔j的值h[j]=min(maxHeights[j],h[j+1])。同理,右边每一个塔j的值h[j]=min(maxHeights[j],h[j-1])。不难想到,主要的时间开销在枚举每一个塔作为山峰,以及计算每个塔作为山峰时,整体的一个最大高度和,都需要遍历n个塔,如果整体的高度和能够很快计算出来,可以减少时间的开销。原创 2023-09-26 10:33:20 · 205 阅读 · 0 评论 -
【LeetCode周赛】LeetCode第362场周赛
那么我们可以先存储所有石头多的位置和0石头的位置,对0石头的位置进行全排列,然后依次计算从石头多的位置移动到0石头的位置需要多少步,维护一个最小值即可。解释:从单元格 (3, 1)开始出发,穿过上图标注的单元格,至少需要 4 秒后到达单元格 (7, 3)。解释:从单元格 (2, 4)开始出发,穿过上图标注的单元格,可以在恰好 6 秒后到达单元格 (7, 7)。输入:grid = [[1,1,0],[1,1,1],[1,2,1]]输入:grid = [[1,3,0],[1,0,0],[1,0,3]]原创 2023-09-11 08:47:13 · 228 阅读 · 0 评论 -
【LeetCode周赛】LeetCode第359场周赛
将位于 [0,0] 范围内的房屋以 1 金币的价格出售给第 1 位买家,并将位于 [1,3] 范围内的房屋以2 金币的价格出售给第 3 位买家。例如,“ab” 可以由 [“apple”, “banana”] 形成,但是无法从 [“bear”, “aardvark”] 形成。输入:words = [“never”,“gonna”,“give”,“up”,“on”,“you”], s = “ngguoy”输入:n = 5, offers = [[0,0,1],[0,2,10],[1,3,2]]原创 2023-08-30 09:57:26 · 775 阅读 · 0 评论 -
【LeetCode周赛】LeetCode第358场周赛
这道题主要考察的是对链表的操作,既然要对链表翻倍,那么我们一定要考虑到进位如何表示,可以先将链表进行翻转,翻转之后对链表的各个数字进行翻倍的操作会变得简单一些。输入:nums = [51,71,17,24,42] 输出:88 解释: i = 1 和 j = 2 ,nums[i] 和 nums[j]可以知道数据范围并不大,因此我们可以直接暴力枚举整数数组nums中的两个数,判断这两个数数位上最大的数字是否相等。输出:0 解释:我们选择 nums[0] = 4 和 nums[3] = 4。原创 2023-08-13 17:46:10 · 312 阅读 · 0 评论