277. Find the Celebrity
来源:互联网 发布:剑三成男纯阳捏脸数据 编辑:程序博客网 时间:2024/05/21 08:03
Suppose you are at a party with n
people (labeled from 0
to n - 1
) and among them, there may exist one celebrity. The definition of a celebrity is that all the other n - 1
people know him/her but he/she does not know any of them.
Now you want to find out who the celebrity is or verify that there is not one. The only thing you are allowed to do is to ask questions like: "Hi, A. Do you know B?" to get information of whether A knows B. You need to find out the celebrity (or verify there is not one) by asking as few questions as possible (in the asymptotic sense).
You are given a helper function bool knows(a, b)
which tells you whether A knows B. Implement a function int findCelebrity(n)
, your function should minimize the number of calls to knows
.
/* The knows API is defined in the parent class Relation. boolean knows(int a, int b); */public class Solution extends Relation { public int findCelebrity(int n) { if(n <= 0){ return -1; } int candidate = 0; for(int i=1; i<n; i++){ if(knows(candidate, i)){ candidate = i; //从第二个人开始数,如果有人认识此人,则把此人设为candidate }//因为celebrity不认识任何人,所以一旦candidate认识i,那么candidate就肯定不是celebrity } for(int i=0; i<n; i++){//反向验证,结果返回-1 if(i != candidate && (knows(candidate, i) || !knows(i, candidate))){ return -1; //验证candidate,他不认识任何人,但是任何人都认识他 } } return candidate; }}
- 277. Find the Celebrity
- 277. Find the Celebrity
- 277. Find the Celebrity
- LeetCode 277. Find the Celebrity
- Leetcode 277. Find the Celebrity
- LeetCode 277. Find the Celebrity
- #leetcoce#277. Find the Celebrity
- [leetcode] 277. Find the Celebrity 解题报告
- Leetcode 277. Find the Celebrity (Medium) (cpp)
- [Leetcode] 277. Find the Celebrity 解题报告
- Leetcode: Find the Celebrity
- *LeetCode-Find the Celebrity
- [LeetCode277]Find the Celebrity
- Find the Celebrity
- Leetcode Find the Celebrity
- Find the Celebrity
- Find the Celebrity
- Find the Celebrity
- 17 - 05 - 08 Web安全(37)
- 【OTT】欧盟计划修改电子隐私指令 首次将OTT服务提供商纳入监管
- 【Leetcode】191. Number of 1 Bits
- 谷歌Chrome浏览器提示adobe flash player已过期完美解决办法
- 【算法】程序猿不写代码是不对的11
- 277. Find the Celebrity
- 微信小程序动态的显示或隐藏控件
- KiCad设计PCB-23-封装检查-生成网络表-导入
- How To Remote Desktop from windows to Linux
- Linux 下安装 gcc6.3.0
- KiCad设计PCB-24-画电路板的边框
- 0124
- 公布2017年博士生招生资格审核制的审核结果
- KiCad设计PCB-25-安装孔的制作和摆放