The Celebrity Problem Hard 0 attempts
GeeksforGeeks ↗

The Celebrity Problem

Hard Stack&Queue GeeksforGeeks

In a party of N people, a celebrity is someone known by everyone but knows no one. Given a knows(a, b) function, find the celebrity or return -1.

Example: N=3, matrix=[[0,1,0],[0,0,0],[0,1,0]] → celebrity = 1

Sample Input
Sample Output
Constraints
  • 2 <= n <= 500
Topics

Two Pointer Elimination

function findCelebrity(n, knows) {
  let candidate = 0;
  for (let i = 1; i < n; i++) if (knows(candidate, i)) candidate = i;
  for (let i = 0; i < n; i++) {
    if (i === candidate) continue;
    if (knows(candidate, i) || !knows(i, candidate)) return -1;
  }
  return candidate;
}

Time: O(n) | Space: O(1)

Saved in this browser only. Private to you.

JavaScript