20250618 finished.
This commit is contained in:
parent
c0cd44f606
commit
f438304378
|
@ -0,0 +1,51 @@
|
|||
/**
|
||||
* [2966] Divide Array Into Arrays With Max Difference
|
||||
*/
|
||||
#include <bits/stdc++.h>
|
||||
#include <gtest/gtest.h>
|
||||
using namespace std;
|
||||
|
||||
|
||||
// submission codes start here
|
||||
|
||||
class Solution
|
||||
{
|
||||
public:
|
||||
vector<vector<int>> divideArray(vector<int> &nums, int k)
|
||||
{
|
||||
ranges::sort(nums);
|
||||
|
||||
vector<vector<int>> result;
|
||||
bool flag = true;
|
||||
result.reserve(nums.size() / 3);
|
||||
|
||||
for (int i = 0; i < nums.size(); i += 3)
|
||||
{
|
||||
if (nums[i + 2] - nums[i + 1] > k || nums[i + 1] - nums[i] > k || nums[i + 2] - nums[i] > k)
|
||||
{
|
||||
flag = false;
|
||||
break;
|
||||
}
|
||||
|
||||
vector array = {nums[i], nums[i + 1], nums[i + 2]};
|
||||
result.push_back(move(array));
|
||||
}
|
||||
|
||||
if (flag)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
};
|
||||
|
||||
// submission codes end
|
||||
|
||||
TEST(P2966, Test1)
|
||||
{
|
||||
vector nums = {1, 3, 4, 8, 7, 9, 3, 5, 1};
|
||||
vector<vector<int>> result = {{1, 1, 3}, {3, 4, 5}, {7, 8, 9}};
|
||||
|
||||
ASSERT_EQ(result, Solution().divideArray(nums, 2));
|
||||
}
|
Loading…
Reference in New Issue
Block a user