From b3dba32504b5e74256c9c2ac5c7a018f55ae1afb Mon Sep 17 00:00:00 2001 From: jackfiled Date: Thu, 19 Jun 2025 15:46:08 +0800 Subject: [PATCH] 20250619 finished. --- ...rray-such-that-maximum-difference-is-k.cpp | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/problems/2294-partition-array-such-that-maximum-difference-is-k.cpp diff --git a/src/problems/2294-partition-array-such-that-maximum-difference-is-k.cpp b/src/problems/2294-partition-array-such-that-maximum-difference-is-k.cpp new file mode 100644 index 0000000..e8d6bbe --- /dev/null +++ b/src/problems/2294-partition-array-such-that-maximum-difference-is-k.cpp @@ -0,0 +1,50 @@ +/** +* [2294] Partition Array Such That Maximum Difference Is K + */ +#include +#include +using namespace std; + + +// submission codes start here + +class Solution +{ +public: + int partitionArray(vector &nums, int k) + { + ranges::sort(nums); + + // At least to split into one segment. + int result = 1; + int pos = 1; + int minValue = nums[0]; + + while (pos < nums.size()) + { + if (nums[pos] > minValue + k) + { + result += 1; + minValue = nums[pos]; + } + else + { + pos += 1; + } + } + + return result; + } +}; + +// submission codes end + +TEST(P2294, Test1) +{ + vector nums1 = {3, 6, 1, 2, 5}; + ASSERT_EQ(2, Solution().partitionArray(nums1, 2)); + vector nums2 = {1, 2, 3}; + ASSERT_EQ(2, Solution().partitionArray(nums2, 1)); + vector nums3 = {2, 2, 4, 5}; + ASSERT_EQ(3, Solution().partitionArray(nums3, 0)); +} \ No newline at end of file