• 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相关推荐

  1. 【LeetCode】Biweekly Contest 10 总结

    一.概述 做的很差劲,至少可以拿出半小时看第四题的,结果只ac了第一题和第三题.所以对自己很生气,要总结一下经验教训. 二.分析 1.第一题 输入三个有序数组,找相同元素. 我是个傻逼,为什么这么说呢 ...

  2. LeetCode笔记:Biweekly Contest 56(补发)

    LeetCode笔记:Biweekly Contest 56 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...

  3. LeetCode笔记:Biweekly Contest 38 比赛记录

    LeetCode笔记:Biweekly Contest 38 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 ...

  4. LeetCode笔记:Biweekly Contest 83

    LeetCode笔记:Biweekly Contest 83 0. 小结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. ...

  5. LeetCode笔记:Biweekly Contest 55(补发)

    LeetCode笔记:Biweekly Contest 55 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...

  6. LeetCode笔记:Biweekly Contest 68

    LeetCode笔记:Biweekly Contest 68 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...

  7. LeetCode笔记:Biweekly Contest 65

    LeetCode笔记:Biweekly Contest 65 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...

  8. LeetCode笔记:Biweekly Contest 33 比赛记录

    LeetCode笔记:Biweekly Contest 33 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 ...

  9. LeetCode笔记:Biweekly Contest 94

    LeetCode笔记:Biweekly Contest 94 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...

最新文章

  1. 产品经理也能动手实践的AI(一)- FastAI介绍
  2. php对字符串进行编码,PHP如何使用convert_uuencode()函数对字符串进行编码?
  3. 数据库中case when condition then else end的理解
  4. SAP Hybris里搜索显示结果的实现原理
  5. 数据分析 | 基于智能标签,精准管理数据
  6. 第 12 章 多路查找树
  7. 2015.11.18——Lua中文教程
  8. 改进YOLOv7系列:26.CVPR2022. ConvNeXt结合YOLOv7 | 基于ConvNeXt结构 构建 CNeB 模块
  9. vue项目中如何下载excel表格模板
  10. win10下Linux双系统
  11. 【Node.js】关于Node.js接口的详解和案例--restful风格接口。案例:添加商品接口,添加员工接口,删除员工接口
  12. Unbuntu环境编译 Android平台可用ffmpeg(带三方库fdk-aac和lame)
  13. 高阶函数,太有用啦!
  14. vue学习第五天(9月8号)
  15. python 网络通讯 plc_Python TCP通信网络编程
  16. Android应用耗电分析与优化
  17. Rsa前后端加密交互 带demo
  18. Hadoop大数据单词统计
  19. 诺基亚 Lumia 920T 今日发布 处理器升级
  20. mysql 实现 connect by start with

热门文章

  1. 【AD封装】插件压敏电阻封装(带3D)
  2. 并行1---mpich在ubuntu中运行--docker的创建和使用
  3. Android Binder设计与实现
  4. java开发安卓app教程
  5. 学习——无知是不懈的动力!
  6. vue中设置内联样式style 动态绑定背景图backgroundimage不生效问题,以及动态绑定img的src,图片无法显示问题(src=“[object Module]“)
  7. 控制结构(强化):17.莫比乌斯函数
  8. 现实迷途 第十四章 事情突变
  9. android sdk怎么启动,如何启动Android SDK 1.5模拟器
  10. jquery ajax同源、跨域请求整理