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

Leetcode 3615. Longest Palindromic Path in Graph

  • Leetcode 3615. Longest Palindromic Path in Graph
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3615. Longest Palindromic Path in Graph

1. 解题思路

这一题思路上就是一个动态规划的思路,我们只需要考察每一个节点作为中心节点时,其两侧辐射下去最长能够达到的长度即可。

考虑到路径不能重复经过同一个点,因此我们需要给定status来记录每一个点是否曾经走过,这个我们可以通过一个常数来记录,其每一个二进制位都表示对应节点是否有被走过。

2. 代码实现

给出python代码实现如下:

class Solution:def maxLen(self, n: int, edges: List[List[int]], label: str) -> int:graph = defaultdict(list)for u, v in edges:graph[u].append(v)graph[v].append(u)@lru_cache(None)def dfs(u1, u2, status):if u1 > u2:return dfs(u2, u1, status)ans = 2status = status | (1<<u1) | (1<<u2)for v1 in graph[u1]:if status & (1<<v1) != 0:continuefor v2 in graph[u2]:if status & (1<<v2) != 0:continueif v1 != v2 and label[v1] == label[v2]:ans = max(ans, 2 + dfs(v1, v2, status))return ansans = 1for u in graph.keys():for v in graph[u]:if label[u] == label[v]:ans = max(ans, dfs(u, v, 0))m = len(graph[u])for i in range(m-1):for j in range(i+1, m):v, w = graph[u][i], graph[u][j]if label[v] == label[w]:ans = max(ans, 1+dfs(v, w, 1<<u))return ans

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


文章转载自:
http://bandhnu.zzgtdz.cn
http://assayer.zzgtdz.cn
http://autophyte.zzgtdz.cn
http://bursiform.zzgtdz.cn
http://argentate.zzgtdz.cn
http://barbara.zzgtdz.cn
http://brechtian.zzgtdz.cn
http://adultly.zzgtdz.cn
http://bunny.zzgtdz.cn
http://autogiro.zzgtdz.cn
http://cachepot.zzgtdz.cn
http://bracket.zzgtdz.cn
http://calefaction.zzgtdz.cn
http://aeroboat.zzgtdz.cn
http://airless.zzgtdz.cn
http://bleachery.zzgtdz.cn
http://brassfounding.zzgtdz.cn
http://bushtailed.zzgtdz.cn
http://automatise.zzgtdz.cn
http://beatster.zzgtdz.cn
http://chittamwood.zzgtdz.cn
http://autoincrement.zzgtdz.cn
http://birthroot.zzgtdz.cn
http://annonaceous.zzgtdz.cn
http://boubou.zzgtdz.cn
http://avignon.zzgtdz.cn
http://cardiodynia.zzgtdz.cn
http://bract.zzgtdz.cn
http://catholicate.zzgtdz.cn
http://adjutantship.zzgtdz.cn
http://www.dtcms.com/a/277796.html

相关文章:

  • [Dify]-基础入门5- Dify 中角色设定的正确方式与常见误区
  • SpringBoot3-Flowable7初体验
  • 谷歌在软件工程领域应用AI的进展与未来展望
  • v-for中key值的作用:为什么我总被要求加这个‘没用的‘属性?
  • Linux-网络管理
  • OneCode 3.0 权限引擎实现详解:基于esdright模块的设计与架构
  • 【micro:bit】从入门到放弃(一):在线、离线版本的使用
  • 代码部落 20250713 CSP-J复赛 模拟赛
  • 适配器模式:兼容不兼容接口
  • C++--unordered_set和unordered_map的使用
  • C#接口进阶:继承与多态实战解析
  • DVWA靶场通关笔记-XSS DOM(Medium级别)
  • 在人工智能自动化编程时代:AI驱动开发和传统软件开发的分析对比
  • 如何自动化处理TXT日志,提升工作效率新方式
  • Autotab:用“屏幕录制”训练AI助手,解锁企业级自动化新范式
  • Springboot实现一个接口加密
  • 免费证件照工具,一键制作超方便
  • Linux驱动开发2:字符设备驱动
  • NumPy实战指南:解锁科学计算的超能力
  • 5.适配器模式
  • Chrome浏览器此扩展程序已停用,因为它已不再受支持,插件被停用解决方案
  • 解决 Python 跨目录导入模块问题
  • Ubuntu 设置自动挂载 SD 卡,扩容根目录
  • 进程互斥的硬件实现方法
  • Python----大模型(Langchain-Prompt提示词)
  • 快速搭建Maven仓库服务
  • 大话数据结构之 <顺序表> (C语言)
  • 学习:JS基础[5]对象
  • 【SpringAI Alibaba】基于 Redis 实现连续对话与向量存储
  • VsCode的LivePreview插件应用