LeetCode笔记:Biweekly Contest 78
- LeetCode笔记:Biweekly Contest 78
- 1. 题目一
- 1. 解题思路
- 2. 代码实现
- 2. 题目二
- 1. 解题思路
- 2. 代码实现
- 3. 题目三
- 1. 解题思路
- 2. 代码实现
- 4. 题目四
- 1. 解题思路
- 2. 代码实现
- 1. 题目一
- 比赛链接:https://leetcode.com/contest/biweekly-contest-78/
1. 题目一
给出题目一的试题链接如下:
- 2269. Find the K-Beauty of a Number
1. 解题思路
这一题思路非常直接,用一个滑动窗口遍历计数一下即可。
2. 代码实现
给出python代码实现如下:
class Solution:def divisorSubstrings(self, num: int, k: int) -> int:s = str(num)n = len(s)res = 0for i in range(n-k+1):sub = int(s[i:i+k])if sub == 0:continueif num % sub == 0:res += 1return res
提交代码评测得到:耗时29ms,占用内存13.8MB。
2. 题目二
给出题目二的试题链接如下:
- 2270. Number of Ways to Split Array
1. 解题思路
这一题事实上只要用一个累积数组即可。
我们首先求出数组的总和,然后考察每一个位置上的前序和是否大于等于总和的一半即可。
2. 代码实现
给出python代码实现如下:
class Solution:def waysToSplitArray(self, nums: List[int]) -> int:s, tot = 0, sum(nums)n = len(nums)res = 0for i in range(n-1):s += nums[i]if s * 2 >= tot:res += 1return res
提交代码评测得到:耗时1275ms,占用内存29.3MB。
3. 题目三
给出题目三的试题链接如下:
- 2271. Maximum White Tiles Covered by a Carpet
1. 解题思路
这一题其实就是考察一下区间的覆盖,我们只要先将tiles进行一下排序,然后考察以每一个tile的开头作为起点时,能够覆盖住的格数,然后取最大值即可。
而对于每一次能够覆盖的数目计算,我们只要通过一个二叉搜索即可得到最后一个覆盖的位置,然后通过累积数组计算一下两个位置之间的tile的个数即可。
唯一需要注意的就是边界情况,这个还是需要小心一点的。
2. 代码实现
给出python代码实现如下:
class Solution:def maximumWhiteTiles(self, tiles: List[List[int]], carpetLen: int) -> int:tiles = sorted(tiles)n = len(tiles)cnt = [0] + [t[1] - t[0] + 1 for t in tiles]cnt = list(accumulate(cnt))res = 0for i in range(n):ed = tiles[i][0] + carpetLenj = bisect.bisect_left(tiles, [ed, ed])if j >= n or tiles[j][0] == ed:res = max(res, cnt[j]-cnt[i])else:res = max(res, cnt[j-1]-cnt[i] + min(tiles[j-1][1]+1, ed) - tiles[j-1][0])return res
提交代码评测得到:耗时1395ms,占用内存39.6MB。
4. 题目四
给出题目四的试题链接如下:
- 2272. Substring With Largest Variance
1. 解题思路
这一题我的思路还是比较暴力的,就是遍历字符串当中所有出现过的字符,将其组成pair,然后考察一下各个pair下能够组成的最大的variance。
极限情况下,算法复杂度是 O ( 2 6 2 × n ) O(26^2 \times n) O(262×n),勉勉强强可以接受。
那么,剩下的问题就是在一个确定的pair对下面,如何求解最大距离。
这个事实上不难,唯一比较麻烦的就是边界条件需要注意一下,即需要保证两种字符都需要存在。
2. 代码实现
给出python代码实现如下:
class Solution:def largestVariance(self, s: str) -> int:chars = list(set(s))res = 0for u in chars:for v in chars:if u == v:continuecnt = 0has_another = False_min, last_min = 0, math.inffor ch in s:if ch == u:cnt += 1res = max(res, cnt - _min) if has_another else max(res, cnt - last_min)if ch == v:cnt -= 1if cnt >= _min:has_another = Truelast_min = _minelse:last_min = min(last_min, _min)_min = cnthas_another = Falseres = max(res, cnt - _min) if has_another else max(res, cnt - last_min)return res
提交代码评测得到:耗时4241ms,占用内存14MB。
LeetCode笔记:Biweekly Contest 78相关推荐
- 【LeetCode】Biweekly Contest 10 总结
一.概述 做的很差劲,至少可以拿出半小时看第四题的,结果只ac了第一题和第三题.所以对自己很生气,要总结一下经验教训. 二.分析 1.第一题 输入三个有序数组,找相同元素. 我是个傻逼,为什么这么说呢 ...
- LeetCode笔记:Biweekly Contest 56(补发)
LeetCode笔记:Biweekly Contest 56 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...
- LeetCode笔记:Biweekly Contest 38 比赛记录
LeetCode笔记:Biweekly Contest 38 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 ...
- LeetCode笔记:Biweekly Contest 83
LeetCode笔记:Biweekly Contest 83 0. 小结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. ...
- LeetCode笔记:Biweekly Contest 55(补发)
LeetCode笔记:Biweekly Contest 55 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...
- LeetCode笔记:Biweekly Contest 68
LeetCode笔记:Biweekly Contest 68 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...
- LeetCode笔记:Biweekly Contest 65
LeetCode笔记:Biweekly Contest 65 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...
- LeetCode笔记:Biweekly Contest 33 比赛记录
LeetCode笔记:Biweekly Contest 33 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 ...
- LeetCode笔记:Biweekly Contest 94
LeetCode笔记:Biweekly Contest 94 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...
最新文章
- xamarin使用mysql_[开源] .NetCore .NetFramework Xamarin 使用 ORM FreeSql 访问 MySql
- Go的结构体对接受者函数的传递
- linux 分布式 程序管理,linux--------------git分布式系统项目管理(1)
- 慕课网_《Java实现对称加密》学习总结
- 用手机「3D探店」是种什么体验?
- 看完这篇操作系统,和面试官扯皮就没问题了!
- [修复] Firemonkey 使用 DrawPath 断线问题(Android iOS 平台)
- (27)FPGA面试题动态时序模拟
- 缓存学习中未命中的缓存情况的处理
- 简单介绍CUDA中loop unrolling(循环展开)技术
- Delphi 2007 TIDHttp HTTPS 出现Error connecting with SSL
- 遗传算法(Genetic Algorithm, GA)及MATLAB实现
- #今日论文推荐# XAI+网络安全?布兰登大学等最新《可解释人工智能在网络安全应用》综述,33页pdf阐述其现状、挑战、开放问题和未来方向
- python中.item()的讲解
- 51单片机码表c语言编程,用AT89S51单片机制作的多功能自行车速度里程表
- Metrics 入门教程
- Java程序员面试学习资料汇总
- cannot find -lGL问题的解决方法
- MP1541升压电路
- Ubuntu2Go制作使用和资料说明(LinuxtoGo)
热门文章
- 《并行与分布式计算》实验五——Java socket 编程
- tp-link路由器Portal功能典型配置案例
- 使用 蝶形结构、树形结构 实现MPI_Allreduce
- 判断一个对象是否是基本类型或基本类型的封装类型
- 矩形脉冲信号合成_矩形脉冲信号的分解和合成
- RS232电平与TTL电平
- Win10没有以太网图标如何找回?以太网适配器不见了怎么恢复?
- 干涩皮肤的解渴神器,水肌美玻尿酸补水保湿面膜
- 【论文整理】基于图神经网络的社交推荐模型整理Graph Neural Networks for Recommender Systems: Challenges, Methods, and Direct
- JUC并发编程笔记1__JUC概述、虚假唤醒问题、JUC的生产者和消费者关系、8锁问题(对象锁、类锁区别)