news 2026/4/17 22:39:48

leetcode 851. Loud and Rich 喧闹和富有-耗时100%

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 851. Loud and Rich 喧闹和富有-耗时100%

Problem: 851. Loud and Rich 喧闹和富有

解题过程

耗时100%,最开始用深度优先搜索小的指向大的,可以做但是超时了

逆向思考以后,由大的指向小的tr[richer[i][0]].push_back(richer[i][1]);,使用了拓扑排序的,计算入度,将入度0的放入队列,每次计算入度0的节点指向的节点的quiet最小的索引

Code

class Solution { public: vector<int> ret; vector<bool> status; vector<vector<int>> tr; int mi = INT_MAX; vector<int> qt; int dfs(int start) { // status[start] = true; int next; if(tr[start].size() == 0) { ret[start] = start; // status[start] = false; return start; } int mimi = qt[start], ans, id = start; for(int i = 0; i < tr[start].size(); i++) { next = tr[start][i]; // if(status[next] == false) { if(tr[next].size() == 0) { ans = next; } else { ans = dfs(next); } if(mimi > qt[ans]) { id = ans; mimi = qt[ans]; } // } } // status[start] = false; ret[start] = id; return id; } vector<int> loudAndRich(vector<vector<int>>& richer, vector<int>& quiet) { // int n = quiet.size(); // tr.resize(n); // for(int i = 0; i < richer.size(); i++) { // tr[richer[i][1]].push_back(richer[i][0]); // } // ret.assign(n, INT_MAX); // status.assign(n, false); // qt = std::move(quiet); // for(int i = 0; i < n; i++) { // if(tr[i].size() == 0) ret[i] = i; // } // for(int i = 0; i < n; i++) { // if(ret[i]==INT_MAX) { // dfs(i); // } // } // return ret; int n = quiet.size(); ret.resize(n); status.assign(n, false); tr.resize(n); for(int i = 0; i < richer.size(); i++) { tr[richer[i][0]].push_back(richer[i][1]); } vector<int> degree(n, 0); for(int i = 0; i < n; i++) { for(int j = 0; j < tr[i].size(); j++) { degree[tr[i][j]]++; } } queue<int> qe; for(int i = 0; i < n; i++) { if(degree[i] == 0) { qe.push(i); status[i] = true; } ret[i] = i; } int ind, kw, par; while( !qe.empty() ) { ind = qe.front(); qe.pop(); for(int i = 0; i < tr[ind].size(); i++) { kw = tr[ind][i]; par = ret[ind]; if(quiet[par] < quiet[ret[kw]]) { ret[kw] = par; } degree[kw]--; if(degree[kw] == 0 && status[kw] == false) { qe.push(kw); } } } return ret; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/8 3:07:15

重构AI工作流:从“代码执行者“到“智能策展人“的升维之路

开篇&#xff1a;效率革命的十字路口根据GitHub 2023年度开发者调研报告&#xff0c;全球超过7300万开发者中&#xff0c;已有73%在编码过程中尝试使用AI辅助工具&#xff0c;但Stack Overflow同期数据显示&#xff0c;仅18%的软件工程师认为AI使其生产力实现"质变级提升&…

作者头像 李华
网站建设 2026/4/16 16:32:16

Unity 之 设备性能分级与游戏画质设置与设备自动适配指南

Unity 之 设备性能分级与游戏画质设置与设备自动适配指南引言&#xff1a;移动设备性能适配的挑战一、设备分级系统的核心架构1.1 分级枚举与平台识别1.2 硬件信息获取二、设备分级算法深度解析2.1 PC设备分级策略2.2 移动设备分级策略三、画质策略实施与优化3.1 质量预设配置3…

作者头像 李华
网站建设 2026/4/17 7:47:32

对比实测:GLM-4.6V-Flash-WEB vs 其他视觉大模型性能差异

GLM-4.6V-Flash-WEB 为何能在视觉大模型中脱颖而出&#xff1f; 在智能客服、内容审核和教育辅助等场景中&#xff0c;用户不再满足于“你能看到这张图吗&#xff1f;”这种基础能力&#xff0c;而是期待系统能真正理解图像背后的语义关系——比如识别配料表中的添加剂、判断医…

作者头像 李华
网站建设 2026/4/10 7:40:52

基于SpringBoot+Web的小游戏集成网站(源码+lw+部署文档+讲解等)

课题介绍本课题旨在设计并实现一款基于SpringBootWeb的小游戏集成网站&#xff0c;解决小游戏资源分散、用户查找游玩不便、游戏数据无法同步、互动体验匮乏及网站运营管理低效等问题。系统以SpringBoot为核心开发框架构建稳定高效的服务端&#xff0c;结合Web技术搭建友好的前…

作者头像 李华