From dc1f0c4c0096013799416664894c5194dc7e1f52 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- store/works/solutions/leetcode/cpp/1144.cpp | 48 +++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 store/works/solutions/leetcode/cpp/1144.cpp (limited to 'store/works/solutions/leetcode/cpp/1144.cpp') diff --git a/store/works/solutions/leetcode/cpp/1144.cpp b/store/works/solutions/leetcode/cpp/1144.cpp new file mode 100644 index 0000000..e6bf83b --- /dev/null +++ b/store/works/solutions/leetcode/cpp/1144.cpp @@ -0,0 +1,48 @@ +#include + +using std::vector; + +inline int min(int a, int b) +{ + return a < b ? a : b; +} + +class Solution +{ +public: + int movesToMakeZigzag(vector &nums) + { + int size = nums.size(); + + if (size == 1) + return 0; + + // odd + int result_odd = 0; + for (int i = 0; i < size; i += 2) + { + int neighber = 1001; + if (i - 1 >= 0) + neighber = min(neighber, nums[i - 1]); + if (i + 1 < size) + neighber = min(neighber, nums[i + 1]); + if (nums[i] >= neighber) + result_odd += nums[i] - neighber + 1; + } + + // even + int result_even = 0; + for (int i = 1; i < size; i += 2) + { + int neighber = 1001; + if (i - 1 >= 0) + neighber = min(neighber, nums[i - 1]); + if (i + 1 < size) + neighber = min(neighber, nums[i + 1]); + if (nums[i] >= neighber) + result_even += nums[i] - neighber + 1; + } + + return min(result_odd, result_even); + } +}; -- cgit v1.2.3