news 2026/2/1 17:53:18

【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/1/31 10:06:45

生产就绪特性-从开发到部署的完整解决方案

GitHub 主页 在我 40 年的软件开发历程中&#xff0c;我见证了无数项目从开发到部署的完整生命周期。最让我痛心的是&#xff0c;很多优秀的项目因为部署阶段的问题而失败。配置管理、服务控制、监控告警&#xff0c;这些看似简单的问题往往成为项目上线的致命障碍。 最近的一…

作者头像 李华
网站建设 2026/1/29 2:02:53

【前端知识点总结】Promise的介绍

1. Promise 是什么&#xff1f;想象一下&#xff0c;你去一家网红奶茶店买奶茶。因为人太多&#xff0c;店员不能立刻做好。这时你有两个选择&#xff1a;选择一&#xff1a;一直等&#xff08;同步思维&#xff09;&#xff1a;你就站在柜台前&#xff0c;眼睛死死盯着制作区&…

作者头像 李华
网站建设 2026/2/1 4:10:00

当 AI 写论文遭遇 “答辩级拷问”:9 款主流工具的生死考验

“这篇参考文献我查不到&#xff0c;是虚构的吗&#xff1f;”“图表数据来源是什么&#xff1f;能提供原始数据吗&#xff1f;”“方法部分只写了模型名称&#xff0c;控制变量怎么设置的&#xff1f;” 毕业季来临&#xff0c;AI 写论文工具已成刚需&#xff0c;但市面上 Ch…

作者头像 李华
网站建设 2026/1/31 21:02:25

科研人的 “数据魔咒”:明明数据在手,却挖不出核心结论

“实验数据堆了几百 G&#xff0c;却不知道用什么方法分析”“SPSS 操作半天&#xff0c;结果还是看不懂”“统计检验选错模型&#xff0c;论文被审稿人质疑结论可信度”—— 这是无数非统计专业科研人的共同困境。 科研的核心是 “用数据说话”&#xff0c;但对于生物、医学、…

作者头像 李华