20250616 finished.

This commit is contained in:
jackfiled 2025-06-16 14:35:47 +08:00
parent fd548c7ba8
commit 70d44b7e9e
Signed by: jackfiled
GPG Key ID: DEF448811AE0286D

View File

@ -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));
}