20250619 finished.
This commit is contained in:
parent
f438304378
commit
b3dba32504
|
@ -0,0 +1,50 @@
|
||||||
|
/**
|
||||||
|
* [2294] Partition Array Such That Maximum Difference Is K
|
||||||
|
*/
|
||||||
|
#include <bits/stdc++.h>
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
// submission codes start here
|
||||||
|
|
||||||
|
class Solution
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
int partitionArray(vector<int> &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));
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user