Menu
CoddyTech

Subsets

Birbirinden farklı tam sayılardan oluşan nums listesini alırsın. Boş küme ve listenin tamamı dâhil olmak üzere, bu listenin tüm alt kümelerini döndür; n değer 2^n alt küme verir. Her alt kümeyi değerleri artan sırada olacak şekilde yaz ve alt kümeleri sözlük sırasına göre listele: iki alt kümeyi değer değer karşılaştır; ilk farklılık sonucu belirler ve başka bir alt kümenin başlangıcı olan alt küme önce gelir. [1, 2] için yanıt [[], [1], [1, 2], [2]] olur.

Fonksiyon

subsets(nums: integer-array) → integer-2d-array
numsinteger-array
değerlerin tümü farklı, herhangi bir sırada
Döndürürinteger-2d-array
her alt küme artan sırada sıralanmış, alt kümeler sözlük sırasına göre listelenmiş

Kısıtlar

  • 1 ≤ nums.length ≤ 10
  • -10 ≤ nums[i] ≤ 10
  • nums içindeki tüm değerler farklıdır.
  • nums herhangi bir sırada gelebilir.

Örnekler

Girdi
nums = [3, 1, 2]
Çıktı
[[], [1], [1, 2], [1, 2, 3], [1, 3], [2], [2, 3], [3]]
Açıklama
Sıralandığında değerler 1, 2, 3'tür ve üç değer 2^3 = 8 alt küme verir. [1, 2], başlangıcı olduğu için [1, 2, 3]'ten önce gelir; [1, 2, 3] ise ikinci konumda 2, 3'ten küçük olduğu için [1, 3]'ten önce gelir.

lock iconGönderirken +13 gizli test

challenge icon

Ek soru

Her alt kümeyi bir öncekinden doğrudan oluşturarak, yinelemeli çağrı kullanmadan aynı listeyi oluşturabilir misin?

Kodu sıfırla
def subsets(nums):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

nums = [3, 1, 2]

Beklenen

[[], [1], [1, 2], [1, 2, 3], [1, 3], [2], [2, 3], [3]]