题目描述
见原题链接
样例
见原题链接
参考解法
(堆) $O(nlog(n))$
blablabla
时间复杂度
参考文献
C++ 代码
class Solution {
public:
int minimumDeviation(vector<int>& nums) {
priority_queue<int> q;
int minv = INT_MAX;
for (int i = 0; i < nums.size(); i ++) {
if (nums[i] % 2)
nums[i] *= 2;
minv = min(minv, nums[i]);
q.push(nums[i]);
}
int res = INT_MAX;
while (true) {
auto t = q.top();
q.pop();
if (t % 2) return res;
while (t % 2 == 0 && t >= q.top()) {
t /= 2;
minv = min(minv, t);
res = min(res, max(t, q.top()) - minv);
}
q.push(t);
}
}
};