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

Leetcode 3715. Sum of Perfect Square Ancestors

  • Leetcode 3715. Sum of Perfect Square Ancestors
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3715. Sum of Perfect Square Ancestors

1. 解题思路

这一题整体的思路上就是一个树的遍历,我们遍历每一个节点,然后考察其所有的父节点当中有多少个元素与之相乘可以得到完全平方数即可。

但是,如果要暴力相乘然后判断平方数事实上还是非常麻烦的,因此这里我们做了一下优化,即对于每一个数,我们可以事先将其所有的平方数全部除掉,此时,找到平方数的操作就可以简化为求出其所有的父节点当中有多少与当前元素相同的元素即可。

2. 代码实现

给出python代码实现如下:

def get_perfect_square(n):ans = []for i in range(2, n):if i * i > n:breakans.append(i*i)return ansPerfectSquares = get_perfect_square(10**5)class Solution:def sumOfAncestors(self, n: int, edges: List[List[int]], nums: List[int]) -> int:@lru_cache(None)def simplify(num):for ps in PerfectSquares:if ps > num:breakwhile num % ps == 0:num = num // psreturn numnums = [simplify(num) for num in nums]graph = defaultdict(list)for u, v in edges:graph[u].append(v)graph[v].append(u)ans = 0def dfs(u, p, history):nonlocal ansans += history[nums[u]]history[nums[u]] += 1for v in graph[u]:if v == p:continuedfs(v, u, history)history[nums[u]] -= 1returndfs(0, -1, defaultdict(int))return ans

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

http://www.dtcms.com/a/482794.html

相关文章:

  • 四川省建设厅门户网站男女做床网站
  • 语义循环的幽灵——循环解释悖论对NLP深层语义分析的影响与启示
  • 项目沟通与冲突管理
  • 网站引导页案例免费的制作手机网站平台
  • linux学习笔记(32)网络编程——UDP
  • 2025全新三防平板科普:5G-A+卫星通信+国产化
  • 电商网站建设懂你所需wordpress一句话木马
  • 「机器学习笔记14」集成学习全面解析:从Bagging到Boosting的Python实战指南
  • 小迪安全v2023学习笔记(一百三十一讲)—— Web权限提升篇划分获取资产服务后台系统数据库管理相互转移
  • Java高并发知识
  • 2025年渗透测试面试题总结-204(题目+回答)
  • 复制 201/220 Dump 需要用什么?
  • idc网站备案中国与菲律宾最新事件
  • 深圳网站建设公司首选宜昌营销型网站
  • 美丽乡村 村级网站建设网站 繁体 js
  • Git 大文件上传失败深度解析与终极解决方案_含 macOS_Windows 全流程20251014
  • Starting again myself 03
  • 网站改版申请网站备案密码使用
  • 视频模型的主流结构
  • Java SpringIoCDI --- @Bean,DI
  • 深度学习与舌诊的结合:人工智能助力中医诊断新时代
  • 分治:最大子段和
  • 从江网站建设松江企业网站建设
  • 贪心算法精选30道编程题 (附有图解和源码)
  • 五莲县财源建设网站为什么网站建设图片显示不出来
  • 第11周中间件漏洞
  • 【MySQL】从零开始了解数据库开发 --- 复合查询
  • 解决 Git 推送冲突:使用 Rebase 整合远程更改
  • synchronized锁升级过程详解
  • mit6s081 lab8 locks