Minimum Moves to Make Array Complementary LeetCode solution in C++
1class Solution {2public:3int minMoves(vector<int> &nums, int limit) {4vector<int> table(limit + limit + 2, 0);56for (int i = 0, j = nums.size() - 1; i < j; i++, j--) {7if (nums[i] > nums[j]) swap(nums[i], nums[j]);8table[nums[i] + 1]--, table[nums[j] + 1 + limit]++;9}1011int sum = nums.size();12for (int i = 0; i != table.size(); i++) table[i] = sum += table[i];1314for (int i = 0, j = nums.size() - 1; i < j; i++, j--) table[nums[i] + nums[j]]--;1516return *min_element(table.begin(), table.end());17}18};