Loading Now

permutationDistance

Cho trước một số nguyên n và một mảng arr chứa các số nguyên từ 1 đến n. Trong một thao tác, bạn có thể hoán đổi vị trí của bất kì hai phần tử nào trong mảng. Hãy trả về khoảng cách lớn nhất giữa hai phần tử giữ giá trị n1 có thể đạt được sau một thao tác. Biết rằng khoảng cách giữa hai phần tử là hiệu giữa hai chỉ số của hai phần tử đó trong mảng

Ví dụ:

  • Với n = 5arr = [4,5,1,3,2] thì permutation_distance(n, arr) = 3
    Giải thích:
    • Ta thấy arr[1] = n, arr[2] = 1 nên khoảng cách hiện tại là 2 - 1 = 1 
    • Thao tác ta thực hiện ở đây sẽ là hoán đổi arr[2] với arr[4], khi đó arr = [4,5,2,3,1]
    • Bây giờ thì khoảng cách là 4 - 1 = 3 và đây cũng là khoảng cách lớn nhất có thể đạt được

Đầu vào/Đầu ra:

  • [Giới hạn thời gian chạy] 0.1 giây với C++, 0.6 giây với Java và C#, 0.8 giây với Python, Go và JavaScript.
  • [Đầu vào] Integer n, Array arr
    2 ≤ n ≤ 100
    arr.size = n
  • [Đầu ra] Integer
    Khoảng cách lớn nhất có thể đạt được thỏa mãn đề bài

Post Comment

Contact