Menu
CoddyTech

Combination Sum

Sana farklı pozitif tam sayılardan oluşan bir candidates listesi ve pozitif bir target tam sayısı veriliyor. Değerlerinin toplamı tam olarak target olan tüm aday kombinasyonlarını bul; her adayı istediğin kadar kullanabilirsin. İki kombinasyon, aynı değerleri aynı sayıda kullanıyorsa aynıdır; bu nedenle [2, 3, 3] ve [3, 2, 3] tek bir kombinasyon olarak sayılır.

Her kombinasyonu değerleri artan sırada olacak şekilde, kombinasyonları da sözlük sırasına göre döndür: İki kombinasyonu soldan başlayarak değer değer karşılaştır ve ilk farklılıkta daha küçük değere sahip olanı önce getir.

Fonksiyon

combinationSum(candidates: integer-array, target: integer) → integer-2d-array
candidatesinteger-array
kullanabileceğin farklı değerler; istediğin sırayla ve her birini istediğin kadar kullanabilirsin
targetinteger
her kombinasyonun toplamı tam olarak ulaşmalıdır
Döndürürinteger-2d-array
hedefe eşit olan, her biri artan sırada sıralanmış ve sözlük sırasına göre listelenmiş tüm kombinasyonlar

Kısıtlar

  • 1 ≤ candidates.length ≤ 50
  • 2 ≤ candidates[i] ≤ 500
  • 2 ≤ target ≤ 500
  • Tüm candidates değerleri birbirinden farklıdır ve belirli bir sıraları yoktur.
  • En az bir kombinasyon target değerine ulaşır ve en fazla 150 kombinasyon ulaşır.

Örnekler

Girdi
candidates = [6, 2, 3]target = 8
Çıktı
[[2, 2, 2, 2], [2, 3, 3], [2, 6]]
Açıklama
Dört tane 2, 8 eder; 2 + 3 + 3 ve 2 + 6 da öyle. Üçü de 2 ile başladığından, sıralamayı ikinci değer belirler: 2, sonra 3, sonra 6. 2 olmadan yalnızca 3’ler ve 6’lar kalır ve bunların her türlü toplamı 3’ün katıdır; 8 ise öyle değildir.

lock iconGönderirken +12 gizli test

challenge icon

Ek soru

Artık her aday en fazla bir kez kullanılabilir ve candidates tekrarlanan değerler içerebilir. Hiçbir kombinasyonun iki kez görünmemesi için aramayı nasıl değiştirirsin?

Kodu sıfırla
def combinationSum(candidates, target):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

candidates = [6, 2, 3]
target = 8

Beklenen

[[2, 2, 2, 2], [2, 3, 3], [2, 6]]