news 2026/9/3 5:00:54

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/9/3 0:12:18

远程医疗问诊平台:GLM-4.6V-Flash-WEB解读患者上传症状照片

远程医疗问诊平台&#xff1a;GLM-4.6V-Flash-WEB解读患者上传症状照片 在偏远乡镇的卫生所里&#xff0c;一位村民举起手机拍下自己溃烂的脚踝&#xff0c;上传到一个远程问诊App。几秒钟后&#xff0c;系统反馈&#xff1a;“右下肢可见边界不清红斑&#xff0c;伴局部渗出&a…

作者头像 李华
网站建设 2026/9/3 3:40:41

CSDN官网广告位投放精准触达GLM-4.6V-Flash-WEB目标用户

GLM-4.6V-Flash-WEB&#xff1a;轻量化多模态模型如何重塑Web端视觉理解 在智能客服自动识别用户截图、电商平台实时解析商品详情图、教育App理解习题配图的今天&#xff0c;图像不再只是“看得见”的内容&#xff0c;而是需要被“读懂”的信息。然而&#xff0c;大多数开发者仍…

作者头像 李华
网站建设 2026/9/3 0:09:06

springboot垃圾回收小程序b22ll-vue

目录 技术架构概述核心功能模块技术亮点环保价值 项目技术支持论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 技术架构概述 SpringBoot垃圾回收小程序B22LL-Vue采用前后端分离架构。…

作者头像 李华
网站建设 2026/9/3 0:12:18

详解Kmeans聚类算法:原理、实现与应用

引言&#xff1a;在机器学习领域&#xff0c;聚类算法作为无监督学习的核心技术之一&#xff0c;广泛应用于用户分群、图像分割、文本聚类、异常检测等场景。其中Kmeans算法以其简单高效、易于实现的特点&#xff0c;成为最受欢迎的聚类算法之一。本文将从基础概念出发&#xf…

作者头像 李华
网站建设 2026/9/3 0:12:46

Plugin ‘vits_native‘ failed to load because module ‘vits_native‘

Plugin vits_native failed to load because module vits_native解决方法&#xff1a;vs 重新编译后&#xff0c;就报错了&#xff0c;解决方法&#xff0c;把之前编译的dll拷贝过来。比如目录&#xff1a;women003_offline_ws\Plugins\vits_native\Intermediate\Build\Win64\U…

作者头像 李华
网站建设 2026/9/3 0:12:50

ue ‘vits_native’ 插件加载失败 ue ‘xxx’ 插件加载失败

ue vits_native’ 插件加载失败 ue xxx’ 插件加载失败解决方法&#xff1a;vs 重新编译后&#xff0c;就报错了&#xff0c;解决方法&#xff0c;把之前编译的dll拷贝过来。比如目录&#xff1a;women003_offline_ws\Plugins\vits_native\Intermediate\Build\Win64\UnrealEdit…

作者头像 李华