From a9ced6e11c986142f45e5535cb62132b7174e314 Mon Sep 17 00:00:00 2001 From: Lam Haoyin Date: Sat, 19 Feb 2022 15:39:05 +0800 Subject: [PATCH] add: 220219 [C++] --- 2202/220219.cpp | 32 ++++++++++++++++++++++++++++++++ 2202/CMakeLists.txt | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 2202/220219.cpp diff --git a/2202/220219.cpp b/2202/220219.cpp new file mode 100644 index 0000000..0d25867 --- /dev/null +++ b/2202/220219.cpp @@ -0,0 +1,32 @@ +#include +#include +#include + +class Solution { +public: + static int minimumDeviation(const std::vector& nums) { + std::priority_queue, 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; +} diff --git a/2202/CMakeLists.txt b/2202/CMakeLists.txt index 3b9ceb3..3704970 100644 --- a/2202/CMakeLists.txt +++ b/2202/CMakeLists.txt @@ -3,4 +3,4 @@ PROJECT(2202) SET(CMAKE_CXX_STANDARD 23) -ADD_EXECUTABLE(2202 220219-CN.cpp) +ADD_EXECUTABLE(2202 220219.cpp)