LeetCode 122买卖股票的最佳时机II
题目链接:122.买卖股票的最佳时机II
class Solution {
public:
int maxProfit(vector<int>& prices) {
int ans = 0;
for (int i = 1; i < prices.size(); ++i) {
int diff = prices[i] - prices[i - 1];
if (diff > 0) ans += diff;
}
return ans;
}
};
LeetCode 55跳跃游戏
题目链接:55.跳跃游戏
class Solution {
public:
bool canJump(vector<int>& nums) {
int n = nums.size();
int i = 0, index = nums[0];
while (i <= index) {
if (index >= n - 1) return true;
index = max(index, i + nums[i]);//最大覆盖范围
++i;
}
return false;
}
};
LeetCode 45跳跃游戏II
题目链接:45.跳跃游戏II
class Solution {
public:
//关键是看能覆盖的最远距离
int jump(vector<int>& nums) {
int n = nums.size();
int ans = 0;
int curCover = 0, nextCover = 0;//当前 / 下一步能覆盖的最远距离的下标
for (int i = 0; i < n; ++i) {
nextCover = max(nextCover, i + nums[i]);
if (i == curCover) {//走到当前覆盖最远距离时更新步数
if (curCover >= n - 1) break;//表示当前已经能走到最后一个位置,步数不需要再增加,直接结束
//else 继续更新
++ans;
curCover = nextCover;
}
}
return ans;
}
};