当前位置: 首页 > news >正文

滨州市滨城区建设局网站东莞seo技术培训

滨州市滨城区建设局网站,东莞seo技术培训,wordpress文章总阅读量,电影网站制作模版LeetCode笔记:Biweekly Contest 99 1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 1. 解题思路2. 代码实现 比赛链接:https://leetcode.com/contest/biweekly-contest-99 1. 题目一…
  • LeetCode笔记:Biweekly Contest 99
    • 1. 题目一
      • 1. 解题思路
      • 2. 代码实现
    • 2. 题目二
      • 1. 解题思路
      • 2. 代码实现
    • 3. 题目三
      • 1. 解题思路
      • 2. 代码实现
    • 4. 题目四
      • 1. 解题思路
      • 2. 代码实现
  • 比赛链接:https://leetcode.com/contest/biweekly-contest-99

1. 题目一

给出题目一的试题链接如下:

  • 2578. Split With Minimum Sum

1. 解题思路

这一题题目简直有毒,题目强调了数字不会以0开头,但是没想到分开的数字却可以以0为开头,因此这道题事实上是被大幅简化了的,我们只要把每一位数排序然后交错分成两个数字相加即可。

2. 代码实现

给出python代码实现如下:

class Solution:def splitNum(self, num: int) -> int:s = str(num)s = sorted([int(ch) for ch in s])n1, n2 = 0, 0for i, ch in enumerate(s):if i % 2 == 0:n1 = n1 * 10 + chelse:n2 = n2 * 10 + chreturn n1 + n2

提交代码评测得到:耗时32ms,占用内存13.8MB。

2. 题目二

给出题目二的试题链接如下:

  • 2579. Count Total Number of Colored Cells

1. 解题思路

这一题其实也简单,就是一个等差数列求和,一道数学题罢了,答案为:

ans=∑i=1n(2i−1)+∑i=1n−1(2i−1)=n2+(n−1)2\begin{aligned} ans &= \sum\limits_{i=1}^{n}(2i-1) + \sum\limits_{i=1}^{n-1}(2i-1) \\ &= n^2 + (n-1)^2 \end{aligned} ans=i=1n(2i1)+i=1n1(2i1)=n2+(n1)2

2. 代码实现

给出python代码实现如下:

class Solution:def coloredCells(self, n: int) -> int:return n * n + (n-1) * (n-1)

提交代码评测得到:耗时31ms,占用内存13.7MB。

3. 题目三

给出题目三的试题链接如下:

  • 2580. Count Ways to Group Overlapping Ranges

1. 解题思路

这一题我们只需要将range进行一下排列,就能够快速地得到所有的有overlapping的区间,然后我们将这些区间分块,就能够得到所有不含有overlapping的区间块总数nnn,而我们的答案就是2n2^n2n

2. 代码实现

给出python代码实现如下:

class Solution:def countWays(self, ranges: List[List[int]]) -> int:MOD = 10**9 + 7groups = 0ranges = sorted(ranges)rb = -1for a, b in ranges:if a > rb:groups += 1rb = belse:rb = max(rb, b)res = 1for _ in range(groups):res = res * 2 % MODreturn res

提交代码评测得到:耗时897ms,占用内存53.1MB。

4. 题目四

给出题目四的试题链接如下:

  • 2581. Count Number of Possible Root Nodes

1. 解题思路

这一题感觉是这周的8道题里面最难的一题了,一开始我也没啥思路,中午的时候临机一动想到了答案,还是蛮开心的。

这一题本质上就是遍历一下每一个点作为根节点时,Bob提出的guess当中正确的猜测的个数,统计其中能够大于k的情况。

单独对于某一个点作为根节点的情况下,考察正确猜测的个数这件事其实是很简单的,只需要用一个遍历即可实现,但是要遍历所有的点作为根节点的情况,这个对于计算效率的要求就比较高了,肯定不都能用for循环对一个节点都单独计算。

我最开始的思路是想要通过动态规划来完成,不过想了好久也没有想到好的解法,后来转念一想,是否可以通过之前已经计算过的结果快速得到其他节点作为根节点时猜测正确的guess个数呢?

这个其实是可以的,假设我们已知u作为根节点时的猜测正确的guess个数n,且v是u的一个邻接节点,那么,以v作为根节点时,其与u作为根节点时的边的关系仅仅只是将(u,v)换成了(v,u),因此,我们就可以快速地得到以v作为根节点时猜测正确的guess个数。

我们同样使用一个遍历即可得到全部的答案了。

2. 代码实现

给出python代码实现如下:

class Solution:def rootCount(self, edges: List[List[int]], guesses: List[List[int]], k: int) -> int:n = len(edges) + 1graph = defaultdict(list)for u, v in edges:graph[u].append(v)graph[v].append(u)guesses = {(u,v) for u, v in guesses}cnt = 0q = [0]seen = set()while q != []:u = q.pop(0)seen.add(u)for v in graph[u]:if v in seen:continueif (u, v) in guesses:cnt += 1q.append(v)seen = set()res = 0def dfs(u, cnt):nonlocal seen, resif u in seen:return if cnt >= k:res += 1seen.add(u)for v in graph[u]:if (u, v) in guesses:if (v, u) in guesses:dfs(v, cnt)else:dfs(v, cnt-1)else:if (v, u) in guesses:dfs(v, cnt+1)else:dfs(v, cnt)returndfs(0, cnt)return res

提交代码评测得到:耗时2205ms,占用内存194.1MB。

http://www.dt0577.cn/news/39751.html

相关文章:

  • 网站详情页用什么软件做网络营销论文3000字
  • 太原建站模板seo在线外链
  • 怎么做网站推广怎么样跨境电商seo什么意思
  • 做网站用什么写潮州网络推广
  • 网站要实名认证怎样做一个网站平台
  • 东莞网站建设代理商成都达洱狐网络科技有限公司
  • 建设公司网站需要钱吗网址查询服务中心
  • 如何解决网站只收录首页的一些办法seo服务加盟
  • 12380网站建设打算7个湖北seo网站推广策略
  • 做毕业设计资料网站好浙江百度查关键词排名
  • 如何优化啊里网站排名惠州seo推广外包
  • 公司网站建设征稿令完美动力培训价格表
  • 张家界网站开发社群营销的方法和技巧
  • 购物网站开发的背景与意义推广seo优化公司
  • 个体户做网站有用吗外链免费发布平台
  • 公司的做网站培训班管理系统 免费
  • 南昌网站建设在哪里免费企业网站建设流程
  • 深圳做网站哪个好公司推广
  • behance网站百度地图优化排名方法
  • 国内知名网站seo公司网站推广
  • 网站开发规范文档河南网站关键词优化
  • 怎样辨别网站长春网络科技公司排名
  • 有关网站开发的创意手机百度最新正版下载
  • 自己做的网站怎么设置地址seo优化排名易下拉用法
  • 工作细胞中文版免费完整版第一季河北seo
  • php实战做网站视频教程广州番禺发布
  • 做神马网站优化排名软代写软文公司
  • 网站搭建要求模板写软文怎么接单子
  • 杭州网站建站推广seo概念的理解
  • 佛山做网站建设网站可以自己做吗