news 2026/5/7 20:46:13

【Leetcode】1857. Largest Color Value in a Directed Graph

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Leetcode】1857. Largest Color Value in a Directed Graph

题目地址:

https://leetcode.com/problems/largest-color-value-in-a-directed-graph/description/

给定给一个n nn个顶点的无权有向图,每个顶点有个颜色。一条路径的颜色数定义为其所有顶点里,颜色使用频率最高的那个颜色的使用频率。问所有路径中,颜色数最大是多少。如果有环则返回− 1 -11

f [ u ] [ c ] f[u][c]f[u][c]是以u uu结尾的所有路径中c cc的最高频率。由于同一个路径,如果起点能延伸的话,对于每个颜色的频率都有可能增长,所以我们肯定希望路径越长越好。我们考虑用拓扑排序来做,在分层图上做递推,显然当u uu的颜色不为c cc时,f [ u ] [ c ] = max ⁡ v → u { f [ v ] [ c ] } f[u][c]=\max_{v\to u} \{f[v][c]\}f[u][c]=maxvu{f[v][c]};否则f [ u ] [ c ] = 1 + max ⁡ v → u { f [ v ] [ c ] } f[u][c]=1+\max_{v\to u} \{f[v][c]\}f[u][c]=1+maxvu{f[v][c]}。同时拓扑排序还需要记录有没有环。如果没有环的话,最终答案就是max ⁡ u , c f [ u ] [ c ] \max_{u,c} f[u][c]maxu,cf[u][c]。代码如下:

classSolution{public:intlargestPathValue(string&col,vector<vector<int>>&es){intn=col.size(),m=es.size();vector<int>h(n,-1),e(m),ne(m),ind(n);intidx=0;autoadd=[&](inta,intb){e[idx]=b,ne[idx]=h[a],h[a]=idx++;};for(auto&e:es){add(e[0],e[1]);ind[e[1]]++;}vector<array<int,26>>cnt(n,array<int,26>{});queue<int>q;for(inti=0;i<n;i++)if(!ind[i])q.push(i);intres=0,vis_cnt=0;while(q.size()){intu=q.front();q.pop();vis_cnt++;intcu=col[u]-'a';cnt[u][cu]++;res=max(res,cnt[u][cu]);for(inti=h[u];~i;i=ne[i]){intv=e[i],cv=col[v]-'a';for(intc=0;c<26;c++)cnt[v][c]=max(cnt[v][c],cnt[u][c]);if(!--ind[v])q.push(v);}}returnvis_cnt==n?res:-1;}};

时空复杂度O ( n + m ) O(n+m)O(n+m)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 12:18:15

如何评估我的 Python 代码的内存消耗

原文&#xff1a;towardsdatascience.com/how-i-assess-the-memory-consumption-of-my-python-code-7e890c0b2709 https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/eaa4e890185571f8f4a0f13646802700.png 由作者在 Canva 中创建 我们过去…

作者头像 李华
网站建设 2026/5/6 10:56:48

YOLOv13涨点改进 | 全网独家创新首发、细节涨点篇 | TGRS 2025顶刊 | 引入 Hint 先验特征提示模块,突出潜在目标区域,缓解红外小目标特征丢失,即插即用万能模块,助力高效涨点

一、本文介绍 🔥本文给大家介绍使用 Hint 先验特征提示 思想引入 YOLOv13 目标检测框架,可以在检测前端为网络提供显式的先验提示信息,使模型在特征提取初期就重点关注潜在目标区域,从而缓解小目标在 Backbone 早期下采样过程中易被淹没和丢失的问题。Hint 基于局部对比与…

作者头像 李华
网站建设 2026/5/7 13:05:29

【毕业设计】SpringBoot+Vue+MySQL 中小社区疫情信息管理系统平台源码+数据库+论文+部署文档

摘要 在新冠疫情的持续影响下&#xff0c;社区作为基层防控的重要单元&#xff0c;亟需高效、精准的信息管理工具以应对疫情动态变化。传统的纸质登记和人工统计方式效率低下&#xff0c;易出现信息遗漏或重复录入问题&#xff0c;难以满足快速响应和数据共享的需求。中小社区尤…

作者头像 李华
网站建设 2026/5/3 22:47:50

Prompt工程进阶:掌握AI图像生成的核心调参技巧

Prompt工程进阶:掌握AI图像生成的核心调参技巧 关键词:Prompt工程、AI图像生成、核心调参技巧、图像风格、参数优化 摘要:本文围绕Prompt工程中AI图像生成的核心调参技巧展开。先介绍背景知识,帮助读者了解相关概念和文档结构。接着通过有趣故事引入核心概念,解释了Prompt…

作者头像 李华
网站建设 2026/5/3 4:46:23

以领码 SPARK 融合平台为支撑,构建新一代 SMB 智能化 DCMM 服务平台——让数据管理能力“评得准、建得起、跑得久、用得好”**

摘要&#xff08;Abstract&#xff09; 在“数据要素数字中国人工智能”多重战略背景下&#xff0c;数据已从支撑资源升级为关键生产要素。然而&#xff0c;大量中小企业&#xff08;SMB&#xff09;在推进数字化、智能化过程中&#xff0c;普遍存在数据基础薄弱、治理体系缺失…

作者头像 李华
网站建设 2026/4/30 11:05:37

20、数据处理:压缩、同步与正则匹配的实用指南

数据处理:压缩、同步与正则匹配的实用指南 在数据处理和存储过程中,文件的压缩、同步以及文本的搜索匹配是常见的操作。本文将详细介绍几种实用的工具和技术,包括 tar 、 zip 、 rsync 以及正则表达式相关的 grep 命令,帮助你更好地管理和操作数据。 tar 命令:…

作者头像 李华