Leetcode - Find the Celebrity

My code:

/* 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;
            }
        }
        
        for (int i = 0; i < n; i++) {
            if (i == candidate) {
                continue;
            }
            else if (!knows(i, candidate) || knows(candidate, i)) {
                return -1;
            }
        }
        
        return candidate;
    }
}

邏輯題,interesting, 沒做出來。
reference:
https://discuss.leetcode.com/topic/23534/java-solution-two-pass

如果 a 不認(rèn)識(shí)任何人,不代表a是名人。
如果 a 不被任何人認(rèn)識(shí),不代表a是名人
只有當(dāng)a不認(rèn)識(shí)任何人,并且,a不被任何人認(rèn)識(shí),a才是名人

如果a 認(rèn)識(shí) b, a不可能是名人
如果a不認(rèn)識(shí)b,b不可能是名人

就是這幾個(gè)最重要的邏輯,搞清楚就行了。

Anyway, Good luck, Richardo! -- 09/04/2016

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,912評(píng)論 0 33
  • 北方的春天來得很緩慢,如果你不留心,不會(huì)發(fā)現(xiàn)有花開了 按耐不住的心情,跑遍了校園,留下了想留下來的。 拍攝設(shè)備:i...
    木北Y閱讀 315評(píng)論 0 0
  • 最后是個(gè)幌子,它有很多前綴 比如,五月的最后一天 我嘗到了入季以來的第一個(gè)西瓜 甜不甜,它困擾著拿刀的人 瓜農(nóng)賣給...
    倩何人換取閱讀 423評(píng)論 0 2
  • 收拾書房,翻出一本十年前的雜志。看著署有我名字的小說,一時(shí)之間感慨良多。 十年,足以讓一個(gè)人成熟成長(zhǎng)甚至成名?!?..
    奔跑的圖圖閱讀 531評(píng)論 0 4
  • 01 辦公室不透氣很悶熱,心情很容易發(fā)燥。 有天早上一到公司就發(fā)現(xiàn)原來的打卡機(jī)已經(jīng)不再原來的位置,廢棄了一年多在某...
    小李z閱讀 402評(píng)論 4 3

友情鏈接更多精彩內(nèi)容