LeetCode笔记:Biweekly Contest 86
- LeetCode笔记:Biweekly Contest 86
- 0. 赛后总结
- 1. 题目一
- 1. 解题思路
- 2. 代码实现
- 2. 题目二
- 1. 解题思路
- 2. 代码实现
- 3. 题目三
- 1. 解题思路
- 2. 代码实现
- 4. 题目四
- 1. 解题思路
- 2. 代码实现
- 比赛链接:https://leetcode.com/contest/biweekly-contest-86/
0. 赛后总结
好久没有打比赛了,昨天兴致所至重新去打了一下比赛,惊讶地发现我居然还能够拿到国内238,全球777的排名,还是在我最后一题一开始看错题目的前提下,也算是多少有点小开心了。
不过毕竟昨晚的题目简单,后面还需要再接再厉就是了。
1. 题目一
给出题目一的试题链接如下:
- 2395. Find Subarrays With Equal Sum
1. 解题思路
这一题其实就是考虑所有连续两个元素的和,看看有没有重复就行了。
2. 代码实现
给出python代码实现如下:
class Solution:def findSubarrays(self, nums: List[int]) -> bool:n = len(nums)seen = set()for i in range(n-1):s = nums[i] + nums[i+1]if s in seen:return Trueseen.add(s)return False
提交代码评测得到:耗时38ms,占用内存13.8MB。
2. 题目二
给出题目二的试题链接如下:
- 2396. Strictly Palindromic Number
1. 解题思路
这一题蛮有意思的,因为想到了那就是直接写答案的东西,想不到就要绕圈子了,还不一定能搞定。
说白了,对于任何一个大于3的数 n n n,考察 n − 2 n-2 n−2进制下的结果就一定是 12 12 12,因此必然不可能是严格的回文,故我们只需要直接返回False
即可。
2. 代码实现
给出python代码实现如下:
class Solution:def isStrictlyPalindromic(self, n: int) -> bool:return False
提交代码评测得到:耗时26ms,占用内存13.9MB。
3. 题目三
给出题目三的试题链接如下:
- 2397. Maximum Rows Covered by Columns
1. 解题思路
这一题由于 m , n m,n m,n的范围都不会大于12,因此,遍历每一列被block与不被block的情况也就是 2 12 2^{12} 212种情况,即 4096 4096 4096种情况,更何况cols
参数的限制还会帮我们进行一定的剪枝,因此,我们只需要使用一个遍历即可对获得最终的结果。
思路上来说,我们考察每一种符合条件的情况下没有被block的行的数目,然后取出其中的最小值即可反向求得被block的最大值。
2. 代码实现
给出python代码实现如下:
class Solution:def maximumRows(self, mat: List[List[int]], cols: int) -> int:n, m = len(mat), len(mat[0])cache = defaultdict(set)for i in range(n):for j in range(m):if mat[i][j] == 1:cache[j].add(i)def dfs(idx, unblock, cnt):if idx >= m:return n - len(unblock)elif cnt == 0:return dfs(idx+1, unblock | cache[idx], cnt)else:return max(dfs(idx+1, unblock | cache[idx], cnt),dfs(idx+1, unblock, cnt-1))return dfs(0, set(), cols)
提交代码评测得到:耗时60ms,占用内存14MB。
4. 题目四
给出题目四的试题链接如下:
- 2398. Maximum Number of Robots Within Budget
1. 解题思路
这一题一开始看错题目了,题目上要求是连续的,因此事实上我们只需要维护一个滑动窗口即可。
然后剩下的问题就是怎么快速的得到max(chargeTimes)
和sum(runningCosts)
这两个值,后者可以通过一个累积累积数组快速求得,而前者我们可以维护一个有序数组,然后不断地加入新加入的元素以及弹出超过时间窗口的元素即可。
2. 代码实现
给出python代码实现如下:
class Solution:def maximumRobots(self, chargeTimes: List[int], runningCosts: List[int], budget: int) -> int:res = 0ctimes, rcost, k = [], 0, 0for idx, (ct, rc) in enumerate(zip(chargeTimes, runningCosts)):bisect.insort(ctimes, ct)rcost += rck += 1s = ctimes[-1] + k * rcostwhile k > 0 and ctimes[-1] + k * rcost > budget:k -= 1rct = chargeTimes[idx-k]ctimes.pop(bisect.bisect_left(ctimes, rct))rcost -= runningCosts[idx-k]res = max(res, k)return res
提交代码评测得到:耗时4500ms,占用内存22.1MB。
LeetCode笔记:Biweekly Contest 86相关推荐
- 【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. 代码实现 ...
最新文章
- 产品经理也能动手实践的AI(一)- FastAI介绍
- php对字符串进行编码,PHP如何使用convert_uuencode()函数对字符串进行编码?
- 数据库中case when condition then else end的理解
- SAP Hybris里搜索显示结果的实现原理
- 数据分析 | 基于智能标签,精准管理数据
- 第 12 章 多路查找树
- 2015.11.18——Lua中文教程
- 改进YOLOv7系列:26.CVPR2022. ConvNeXt结合YOLOv7 | 基于ConvNeXt结构 构建 CNeB 模块
- vue项目中如何下载excel表格模板
- win10下Linux双系统
- 【Node.js】关于Node.js接口的详解和案例--restful风格接口。案例:添加商品接口,添加员工接口,删除员工接口
- Unbuntu环境编译 Android平台可用ffmpeg(带三方库fdk-aac和lame)
- 高阶函数,太有用啦!
- vue学习第五天(9月8号)
- python 网络通讯 plc_Python TCP通信网络编程
- Android应用耗电分析与优化
- Rsa前后端加密交互 带demo
- Hadoop大数据单词统计
- 诺基亚 Lumia 920T 今日发布 处理器升级
- mysql 实现 connect by start with
热门文章
- 【AD封装】插件压敏电阻封装(带3D)
- 并行1---mpich在ubuntu中运行--docker的创建和使用
- Android Binder设计与实现
- java开发安卓app教程
- 学习——无知是不懈的动力!
- vue中设置内联样式style 动态绑定背景图backgroundimage不生效问题,以及动态绑定img的src,图片无法显示问题(src=“[object Module]“)
- 控制结构(强化):17.莫比乌斯函数
- 现实迷途 第十四章 事情突变
- android sdk怎么启动,如何启动Android SDK 1.5模拟器
- jquery ajax同源、跨域请求整理