20250616 finished.
This commit is contained in:
parent
fd548c7ba8
commit
70d44b7e9e
|
@ -0,0 +1,49 @@
|
||||||
|
/**
|
||||||
|
* [2016] Maximum Difference Between Increasing Elements
|
||||||
|
*/
|
||||||
|
#include <bits/stdc++.h>
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
// submission codes start here
|
||||||
|
|
||||||
|
class Solution
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
int maximumDifference(vector<int> &nums)
|
||||||
|
{
|
||||||
|
vector<int> heap;
|
||||||
|
heap.reserve(nums.size());
|
||||||
|
|
||||||
|
ranges::make_heap(heap, greater());
|
||||||
|
|
||||||
|
int result = -1;
|
||||||
|
for (int i = 1; i < nums.size(); ++i)
|
||||||
|
{
|
||||||
|
heap.push_back(nums[i - 1]);
|
||||||
|
ranges::push_heap(heap, greater());
|
||||||
|
|
||||||
|
if (heap[0] < nums[i])
|
||||||
|
{
|
||||||
|
result = max(result, nums[i] - heap[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// submission codes end
|
||||||
|
|
||||||
|
TEST(P2016, Test1)
|
||||||
|
{
|
||||||
|
vector nums1 = {7, 1, 5, 4};
|
||||||
|
ASSERT_EQ(4, Solution().maximumDifference(nums1));
|
||||||
|
|
||||||
|
vector nums2 = {9, 4, 3, 2};
|
||||||
|
ASSERT_EQ(-1, Solution().maximumDifference(nums2));
|
||||||
|
|
||||||
|
vector nums3 = {1, 5, 2, 10};
|
||||||
|
ASSERT_EQ(9, Solution().maximumDifference(nums3));
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user