Skip to content

Commit 5748909

Browse files
authored
Create minimum-adjacent-swaps-to-make-a-valid-array.cpp
1 parent dfb20b0 commit 5748909

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Time: O(n)
2+
// Space: O(1)
3+
4+
// array, greedy
5+
class Solution {
6+
public:
7+
int minimumSwaps(vector<int>& nums) {
8+
const int min_idx = distance(cbegin(nums), min_element(cbegin(nums), cend(nums)));
9+
const int max_idx = (size(nums) - 1) - distance(crbegin(nums), max_element(crbegin(nums), crend(nums)));
10+
return ((size(nums) - 1) - max_idx) + min_idx - static_cast<int>(max_idx < min_idx);
11+
}
12+
};

0 commit comments

Comments
 (0)