维护最值,遍历一个数字
1:https://leetcode.cn/problems/maximum-value-of-an-ordered-triplet-ii/description/
class Solution {
public:
long long maximumTripletValue(vector
int n=nums.size();
long long ans=0;
long long a=0;
long long diff=0;
for(int k=0;k<n;k++){
ans=max(ans,(long long)diff*nums[k]);
diff=max(diff,(long long)a-nums[k]); ->这里的nums[k]相当于nums[j],维护了最大值,顺带遍历j,k
a=max(a,(long long)nums[k]);
}
return ans;
}
};
2:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/description/
class Solution {
public:
int maxProfit(vector
int ans=0;
int n=prices.size();
int minprice=prices[0];
for(int i=0;i<n;i++){
minprice=min(minprice,prices[i]);
ans=max(ans,prices[i]-minprice);
}
return ans;
}
};简单维护一个最小值,寻找最大值

浙公网安备 33010602011771号