Leetcode-997 Find the Town Judge(找到小镇的法官)
作者水平有限,所发仅为个人愚见,如有明显谬误,望斧正
题目可转化为对于所给正整数N(1≤N≤1000),共有N个节点,编号从1-N。其中"相信"这一概念,可看作是一条连接两节点的有向边。如所给二维vector的trust向量数组,trust[i][0]表示有向边的起点,则trust[i][1]表示有向边的终点。所求为满足以下2个条件的节点:①出度(即题目中的属性1)为0 ②入度(即题目中的属性2)为N-1。当且仅当满足以上两个条件的节点数量为1时,所求问题有解,返回节点编号。当满足以上两个条件的节点数量为0或大于1时,所求问题无解,返回值-1。
对于输入样例
N = 4, trust = [[1,3],[1,4],[2,3],[2,4],[4,3]]
有图 进而有表
1 #define pb push_back 2 #define maxSize 3939 3 #define _for(i,a,b) for(int i = (a);i < (b);i ++) 4 5 class Solution 6 { 7 public: 8 int findJudge(int N, vector<vector<int>>& trust) 9 { 10 int hash[N+1][2]; 11 memset(hash,0,sizeof(hash)); 12 13 int sz = trust.size(); 14 _for(i,0,sz) 15 { 16 hash[trust[i][0]][0] ++; 17 hash[trust[i][1]][1] ++; 18 } 19 20 int rnt = -1; 21 _for(i,1,N+1) 22 { 23 if(hash[i][0]==0&&hash[i][1]==N-1) 24 { 25 if(rnt==-1) 26 rnt = i; 27 else 28 return -1; 29 } 30 } 31 return rnt; 32 } 33 };
执行用时:364ms
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用