class Solution {
public:
int wiggleMaxLength(vector<int>& nums) {
if(nums.size()<=1) return nums.size();
int ans=1;
int prediff=0;
int curdiff=0;
for(int i=0;i<nums.size()-1;i++)
{
curdiff=nums[i+1]-nums[i];
if((prediff<=0&&curdiff>0)||(prediff>=0&&curdiff<0))
{
prediff=curdiff;
ans++;
}
}
return ans;
}
};
lc53. 最大子数组和 lc122. 买卖股票的最佳时机II:把利润拆分成每一天的 lc55. 跳跃游戏 lc45. 跳跃游戏 II:当前跳和下一跳 lc1005. K 次取反后最大化的数组和
class Solution {
public:
static bool cmp(int a,int b)
{
return abs(a)>abs(b);
}
int largestSumAfterKNegations(vector<int>& nums, int k) {
sort(nums.begin(),nums.end(),cmp);
for(int i=0;i<nums.size();i++)
{
if(nums[i]<0&&k>0)
{
nums[i]*=-1;
k--;
if(k<=0) break;
}
}
if(k%2==1)
{
nums[nums.size()-1]*=-1;
}
int ans=0;
for(int x:nums)
{
ans+=x;
}
return ans;
}
};
lc134. 加油站 lc135. 分发糖果:右>左和左>右 lc860. 柠檬水找零 lc406. 根据升高重建队列 lc452. 用最少数量的箭引爆气球 lc435. 无重叠区间 lc763. 划分字母区间 lc56. 合并区间 lc738. 单调递增的数字 lc714. 买卖股票的最佳时机含手续费 lc968. 监控二叉树