add: 220219 [C++]

This commit is contained in:
Lam Haoyin 2022-02-19 15:39:05 +08:00
parent 17fc4abb21
commit a9ced6e11c
No known key found for this signature in database
GPG Key ID: 8C089CB1A2B7544F
2 changed files with 33 additions and 1 deletions

32
2202/220219.cpp Normal file
View File

@ -0,0 +1,32 @@
#include <queue>
#include <vector>
#include <cstdio>
class Solution {
public:
static int minimumDeviation(const std::vector<int>& nums) {
std::priority_queue<int, std::vector<int>, std::less<>> q;
int min = 0x7FFFFFFF, ret = 0x7FFFFFFF;
for (int i : nums) {
q.push(i << (i & 1 ? 1 : 0));
min = std::min(min, i << (i & 1 ? 1 : 0));
}
for (int x; !(1 & (x = q.top())); ) {
q.pop();
ret = std::min(ret, x - min);
min = std::min(min, x >> 1);
q.push(x >> 1);
}
return std::min(ret, q.top() - min);
}
};
int main() {
std::printf("%d\n", Solution::minimumDeviation({1,2,3,4}));
std::printf("%d\n", Solution::minimumDeviation({399, 908, 648, 357, 693, 502, 331, 649, 596, 698}));
// std::printf("%d", Solution::minimumDeviation({399, 908, 648, 357, 693, 502, 331, 649, 596, 698}));
// std::printf("%d", Solution::minimumDeviation({399, 908, 648, 357, 693, 502, 331, 649, 596, 698}));
// std::printf("%d", Solution::minimumDeviation({399, 908, 648, 357, 693, 502, 331, 649, 596, 698}));
// std::printf("%d", Solution::minimumDeviation({399, 908, 648, 357, 693, 502, 331, 649, 596, 698}));
return 0;
}

View File

@ -3,4 +3,4 @@ PROJECT(2202)
SET(CMAKE_CXX_STANDARD 23) SET(CMAKE_CXX_STANDARD 23)
ADD_EXECUTABLE(2202 220219-CN.cpp) ADD_EXECUTABLE(2202 220219.cpp)