Minimum Moves to Make Array Complementary LeetCode solution in C++

1
class Solution {
2
public:
3
int minMoves(vector<int> &nums, int limit) {
4
vector<int> table(limit + limit + 2, 0);
5

6
for (int i = 0, j = nums.size() - 1; i < j; i++, j--) {
7
if (nums[i] > nums[j]) swap(nums[i], nums[j]);
8
table[nums[i] + 1]--, table[nums[j] + 1 + limit]++;
9
}
10

11
int sum = nums.size();
12
for (int i = 0; i != table.size(); i++) table[i] = sum += table[i];
13

14
for (int i = 0, j = nums.size() - 1; i < j; i++, j--) table[nums[i] + nums[j]]--;
15

16
return *min_element(table.begin(), table.end());
17
}
18
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0