Menu
CoddyTech

Permutations

Farklı tam sayılardan oluşan bir nums listesi alırsın. Bu değerlerin tüm sıralamalarını döndür; her biri her değeri tam olarak bir kez kullanan bir liste olsun, böylece n değer n! sıralama verir. Bunları sözlük sırasına göre listele: iki sıralamayı konum konum karşılaştır ve ilk farklı konum belirleyici olsun. [1, 2, 3] için bu, [1, 2, 3] listesini ilk, [3, 2, 1] listesini son sıraya koyar.

Fonksiyon

permute(nums: integer-array) → integer-2d-array
numsinteger-array
değerler, hepsi farklı, herhangi bir sırada
Döndürürinteger-2d-array
değerlerin sözlük sırasına göre listelenmiş her sıralaması

Kısıtlar

  • 1 ≤ nums.length ≤ 6
  • -10 ≤ nums[i] ≤ 10
  • Tüm nums değerleri birbirinden farklıdır.
  • nums herhangi bir sırada olabilir.

Örnekler

Girdi
nums = [3, 1, 2]
Çıktı
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]
Açıklama
Üç değerin 3! = 6 sıralaması vardır. Sıralandığında değerler 1, 2, 3 olur; bu nedenle 1 ile başlayan sıralamalar önce gelir ve ikinci konumda 2, 3'ten küçük olduğu için [1, 2, 3], [1, 3, 2]'den önce gelir. Girdinin sırası önemli değildir.

lock iconGönderirken +13 gizli test

challenge icon

Ek soru

Bir sıralama verildiğinde, O(n) zamanda ve O(1) ek alan kullanarak sözlük sırasındaki bir sonraki sıralamayı yerinde üretebilir misin?

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

Durum 1

Durum 2

Durum 3

Girdi

nums = [3, 1, 2]

Beklenen

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