15,663,154 members
See more:
A "celebrity" is described among `n` people as someone who is known by everyone but knows no one. The challenge is identifying the celebrity, if one exists, by just asking the question, "Excuse me, do you know the person over there?" I've tried reading this article about celebrity problem but couldn't understand it clearly. (It is assumed that all of the responses are right and that even the celebrity will respond.) The idea is to keep the number of questions to a minimum.

What I have tried:

Is there a solution here that is smaller than the apparent `O(n2)`?
Posted
Updated 14-Dec-22 1:37am

## Solution 2

While we are more than willing to help those that are stuck, that doesn't mean that we are here to do it all for you! We can't do all the work, you are either getting paid for this, or it's part of your grades and it wouldn't be at all fair for us to do it all for you.

So we need you to do the work, and we will help you when you get stuck. That doesn't mean we will give you a step by step solution you can hand in!
Start by explaining where you are at the moment, and what the next step in the process is. Then tell us what you have tried to get that next step working, and what happened when you did.

If you are having problems getting started at all, then this may help: How to Write Code to Solve a Problem, A Beginner's Guide[^]

## Solution 1

Quote:
Is there a solution here that is smaller than the apparent O(n2)?
The article you linked shows clearly (even with code samples) the other, better approaches: try harder to understand what is written there (start, for instance, with the recursive approach).

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Top Experts
Last 24hrsThis month
 steveb 75 Graeme_Grant 68 OriginalGriff 30 Andre Oosthuizen 20 Patrice T 20
 OriginalGriff 2,173 Graeme_Grant 1,041 Richard Deeming 728 Richard MacCutchan 648 Dave Kreskowiak 473

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900