class Solution
{
public:
int maxProfit(vector<int>& prices)
{
vector<int> vec;
int result = 0;
for (int i = 0; i < prices.size(); i++)
{
if (i > 0)
{
int tmp = prices[i] - prices[i - 1];
if (tmp > 0)
{
result += tmp;
}
}
}
return result;
}
};
class Solution
{
public:
int jump(vector<int>& nums)
{
int curDistance = 0;
int ans = 0;
int nextDistance = 0;
for (int i = 0; i < nums.size()-1; i++)
{
nextDistance = max(i + nums[i], nextDistance);
if (i == curDistance)
{
curDistance = nextDistance;
ans++;
}
}
return ans;
}
};
class Solution {
public:
int largestSumAfterKNegations(vector<int>& nums, int k)
{
//按绝对值从大到小排序
sort(nums.begin(), nums.end(), [](int a, int b) {return abs(a) > abs(b); });
for (int i = 0; i < nums.size(); i++)
{
//对负数反转
if (nums[i] < 0 && k>0)
{
nums[i] *= -1;
k--;
}
}
//k没消耗完
if (k > 0)
{
if (k % 2 == 1)
{
nums[nums.size() - 1] *= -1;
}
}
int result = 0;
for (auto& i : nums)
{
result += i;
}
return result;
}
};