Menu
CoddyTech

The Celebrity Problem

Bir partide 0 ile n-1 arasında numaralandırılmış n kişi var. matrix[i][j] değerinin, i kişisi j kişisini tanıyorsa 1, tanımıyorsa 0 olduğu n × n boyutunda bir matris veriliyor. Tanışıklık tek yönlüdür: i, j'yi tanırken j, i'yi tanımıyor olabilir.

Ünlü, diğer herkesin tanıdığı ancak hiç kimseyi tanımayan kişidir. Ünlünün numarasını döndürün; ünlü yoksa -1 döndürün.

Fonksiyon

findCelebrity(matrix: integer-2d-array) → integer
matrixinteger-2d-array
kimin kimi tanıdığı: i satırı, j sütunu, kişi i, kişi j'yi tanıyorsa 1'dir
Döndürürinteger
ünlünün numarası, yoksa -1

Kısıtlar

  • 2 ≤ n ≤ 150, burada n satır ve sütun sayısıdır
  • matrix[i][j] değeri 0 veya 1'dir
  • matrix[i][i] = 0 her kişi için

Örnekler

Girdi
matrix = [[0, 1, 0], [0, 0, 0], [1, 1, 0]]
Çıktı
1
Açıklama
1. satırın tamamı sıfırlardan oluşuyor, yani 1. kişi kimseyi tanımıyor. 1. sütunda 0. ve 2. satırlarda 1 var, yani diğer iki kişi de 1. kişiyi tanıyor. 1. kişi ünlüdür.
challenge icon

Ek soru

Her aramanın sormanız gereken bir soru olduğunu varsayın. En kötü durumda kaç soru sormanız gerekir ve 3(n-1) değerinin altına inebilir misiniz?

Kodu sıfırla
def findCelebrity(matrix):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argüman

matrix = [[0, 1, 0], [0, 0, 0], [1, 1, 0]]

Beklenen Çıktı

1