Menu
CoddyTech

Combination Sum

Farklı pozitif tam sayılardan oluşan bir candidates listesi ve pozitif bir target tam sayısı veriliyor. İstediğin adayı istediğin kadar kullanarak toplamı tam olarak target olan tüm kombinasyonları bul. [2, 3, 3] ve [3, 2, 3] aynı kombinasyondur.

Her kombinasyonu artan sırada, kombinasyonları ise sözlük sırasına göre döndür: İki kombinasyonun farklı olduğu ilk konumda, daha küçük değere sahip olan önce gelir.

Fonksiyon

combinationSum(candidates: integer-array, target: integer) → integer-2d-array
candidatesinteger-array
kullanabileceğin farklı değerler; istediğin sırada ve her birini istediğin kadar kullanabilirsin
targetinteger
her kombinasyonun toplamı tam olarak şu değere ulaşmalıdır
Döndürürinteger-2d-array
hedefe ulaşan her kombinasyon, her biri artan sırada olacak şekilde, sözlük sırasına göre listelenir

Kısıtlar

  • 1 ≤ candidates.length ≤ 50
  • 2 ≤ candidates[i] ≤ 500
  • 2 ≤ target ≤ 500
  • candidates içindeki tüm değerler birbirinden farklıdır ve belirli bir sırada değildir.
  • 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, 2 + 3 + 3 ve 2 + 6 toplamlarının hepsi 8 eder; ikinci değerlerine göre sıralanmıştır. 2 olmadan yalnızca 3'ler ve 6'lar kalır ve bunların toplamları 3'ün katıdır; 8 ise değildir.
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 #1

Test #2

Test #3

Argümanlar

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

Beklenen Çıktı

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