122.买卖股票的最佳时机II
本题解法很巧妙,大家可以看题思考一下,在看题解。
class Solution {
public:
int maxProfit(vector<int>& prices) {
int min_num=INT_MAX;
int res=0;
for (int i=0;i<prices.size();i++){
if (prices[i]<min_num){
min_num=prices[i];
}else{
res+=prices[i]-min_num;
min_num=prices[i];
}
}
return res;
}
};
总结
这道一写过几遍了,直接秒了。
55. 跳跃游戏
本题如果没接触过,很难想到,所以不要自己憋时间太久,读题思考一会,没思路立刻看题解
class Solution {
public:
int maxProfit(vector<int>& prices) {
int min_num=INT_MAX;
int res=0;
for (int i=0;i<prices.size();i++){
if (prices[i]<min_num){
min_num=prices[i];
}else{
res+=prices[i]-min_num;
min_num=prices[i];
}
}
return res;
}
};
总结
写过后就不是很难了。
45.跳跃游戏II
本题同样不容易想出来。贪心就是这样,有的时候 会感觉简单到离谱,有时候,难的不行,主要是不容易想到。
class Solution {
public:
int jump(vector<int>& nums) {
int curDistance=0;
int nextDistance=0;
int res=0;
for (int i=0;i<nums.size()-1;i++){
nextDistance=max(nextDistance,nums[i]+i);
if (i==curDistance){
curDistance=nextDistance;
res++;
}
}
return res;
}
};
总结
还是编码能力有所欠缺,自己的想法实现不出来。