• LeetCode笔记:Biweekly Contest 78

    • 1. 题目一

      • 1. 解题思路
      • 2. 代码实现
    • 2. 题目二
      • 1. 解题思路
      • 2. 代码实现
    • 3. 题目三
      • 1. 解题思路
      • 2. 代码实现
    • 4. 题目四
      • 1. 解题思路
      • 2. 代码实现
  • 比赛链接: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相关推荐

  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. xamarin使用mysql_[开源] .NetCore .NetFramework Xamarin 使用 ORM FreeSql 访问 MySql
  2. Go的结构体对接受者函数的传递
  3. linux 分布式 程序管理,linux--------------git分布式系统项目管理(1)
  4. 慕课网_《Java实现对称加密》学习总结
  5. 用手机「3D探店」是种什么体验?
  6. 看完这篇操作系统,和面试官扯皮就没问题了!
  7. [修复] Firemonkey 使用 DrawPath 断线问题(Android iOS 平台)
  8. (27)FPGA面试题动态时序模拟
  9. 缓存学习中未命中的缓存情况的处理
  10. 简单介绍CUDA中loop unrolling(循环展开)技术
  11. Delphi 2007 TIDHttp HTTPS 出现Error connecting with SSL
  12. 遗传算法(Genetic Algorithm, GA)及MATLAB实现
  13. #今日论文推荐# XAI+网络安全?布兰登大学等最新《可解释人工智能在网络安全应用》综述,33页pdf阐述其现状、挑战、开放问题和未来方向
  14. python中.item()的讲解
  15. 51单片机码表c语言编程,用AT89S51单片机制作的多功能自行车速度里程表
  16. Metrics 入门教程
  17. Java程序员面试学习资料汇总
  18. cannot find -lGL问题的解决方法
  19. MP1541升压电路
  20. Ubuntu2Go制作使用和资料说明(LinuxtoGo)

热门文章

  1. 《并行与分布式计算》实验五——Java socket 编程
  2. tp-link路由器Portal功能典型配置案例
  3. 使用 蝶形结构、树形结构 实现MPI_Allreduce
  4. 判断一个对象是否是基本类型或基本类型的封装类型
  5. 矩形脉冲信号合成_矩形脉冲信号的分解和合成
  6. RS232电平与TTL电平
  7. Win10没有以太网图标如何找回?以太网适配器不见了怎么恢复?
  8. 干涩皮肤的解渴神器,水肌美玻尿酸补水保湿面膜
  9. 【论文整理】基于图神经网络的社交推荐模型整理Graph Neural Networks for Recommender Systems: Challenges, Methods, and Direct
  10. JUC并发编程笔记1__JUC概述、虚假唤醒问题、JUC的生产者和消费者关系、8锁问题(对象锁、类锁区别)