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