# LeetCode - 1968. Array With Elements Not Equal to Average of Neighbors ### 題目網址:https://leetcode.com/problems/array-with-elements-not-equal-to-average-of-neighbors/ ###### tags: `LeetCode` `Medium` ```cpp= /* -LeetCode format- Problem: 1968. Array With Elements Not Equal to Average of Neighbors Difficulty: Medium by Inversionpeter */ #define REINDEX(i) (nums[((i << 1) + 1) % (nums.size() | 1)]) static const auto Initialize = [] { ios::sync_with_stdio(false); cin.tie(nullptr); return nullptr; }(); class Solution { public: vector<int> rearrangeArray(vector<int>& nums) { vector <int>::iterator middle = nums.begin() + (nums.size() >> 1); nth_element(nums.begin(), middle, nums.end()); int median = *middle, i = 0, j = 0, k = nums.size() - 1; while (j <= k) if (REINDEX(j) > median) { swap(REINDEX(i), REINDEX(j)); ++i; ++j; } else if (REINDEX(j) < median) { swap(REINDEX(j), REINDEX(k)); --k; } else ++j; return nums; } }; ```