
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ị n
và 1
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 = 5
vàarr = [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ớiarr[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
- Ta thấy
Đầ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