news 2026/6/10 16:24:05

【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/6/9 23:26:27

基于西门子S7 - 200 PLC和组态王的楼宇消防系统电气控制设计探秘

No.950 基于西门子S7-200 PLC和组态王楼宇消防系统电气控制系统设计在当今的智能化建筑领域&#xff0c;楼宇消防系统的电气控制至关重要。今天咱们就来深入聊聊基于西门子S7 - 200 PLC和组态王的楼宇消防系统电气控制设计&#xff0c;编号No.950这个项目可是很有研究价值的。 …

作者头像 李华
网站建设 2026/6/10 12:19:47

温度如何影响 LLMs 中的下一个标记预测?

原文&#xff1a;towardsdatascience.com/how-does-temperature-impact-next-token-prediction-in-llms-779bd908f2cf?sourcecollection_archive---------1-----------------------#2024-05-06 https://ankur-m.medium.com/?sourcepost_page---byline--779bd908f2cf---------…

作者头像 李华
网站建设 2026/6/10 12:18:34

2025-12-19:包含 K 个连通分量需要的最小时间。用go语言,给定一个含有 n 个顶点(编号 0 到 n-1)的无向图,图中的每条边用三元组 edges[i] = [ui, vi, timei

2025-12-19&#xff1a;包含 K 个连通分量需要的最小时间。用go语言&#xff0c;给定一个含有 n 个顶点&#xff08;编号 0 到 n-1&#xff09;的无向图&#xff0c;图中的每条边用三元组 edges[i] [ui, vi, timei] 表示&#xff0c;含义是该无向边连接 ui 和 vi&#xff0c;并…

作者头像 李华
网站建设 2026/6/10 7:38:04

Flutter 权限管理实战手册:permission_handler 全平台适配与最佳实践

【前言】在 Flutter 跨平台开发中&#xff0c;访问设备核心功能&#xff08;如相机、定位、相册、麦克风等&#xff09;均需获取用户授权。permission_handler 作为 Flutter 生态中最主流的权限管理插件&#xff0c;提供了统一的跨平台 API&#xff0c;支持 iOS、Android 等系统…

作者头像 李华
网站建设 2026/6/10 13:39:51

21、正则表达式完全指南

正则表达式完全指南 正则表达式基础 正则表达式是用于匹配文本模式的强大工具。它由普通字符和元字符组成。普通字符就是它们本身,而元字符则用于指定更复杂的匹配规则。正则表达式的元字符包括: ^ $ . [ ] { } - ? * + ( ) | \ 。除了这些元字符,其他字符都被视为普通…

作者头像 李华