LeetCode - 122 买卖股票的最佳时机 II
LeetCode II 股票 买卖 最佳时机 122
2023-09-14 09:04:04 时间
目录
题目来源
122. 买卖股票的最佳时机 II - 力扣(LeetCode)
题目描述
给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。
在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。
返回 你能获得的 最大 利润 。
示例
输入 | prices = [7,1,5,3,6,4] |
输出 | 7 |
说明 |
总利润为 4 + 3 = 7 。 |
输入 | prices = [1,2,3,4,5] |
输出 | 4 |
说明 |
总利润为 4 。 |
输入 | prices = [7,6,4,3,1] |
输出 | 0 |
说明 | 在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0 。 |
提示
1 <= prices.length <= 3 * 104
0 <= prices[i] <= 104
题目解析
本题我们只需要画出股票价格走势图,就可以知道买卖股票的最佳时机了
比如示例1
示例2
示例3
最佳的买卖时机就是:买涨不买跌,买在谷底,不买山顶
因此,我们只需要计算 所有 prices[i] - prices[i-1] > 0 的和即可。
算法源码
/**
* @param {number[]} prices
* @return {number}
*/
var maxProfit = function(prices) {
let ans = 0
for(let i=1; i<prices.length; i++) {
ans += Math.max(0, prices[i] - prices[i-1])
}
return ans
};
相关文章
- ☆打卡算法☆LeetCode 212. 单词搜索 II 算法解析
- ☆打卡算法☆LeetCode 217. 存在重复元素 算法解析
- ☆打卡算法☆LeetCode 219. 存在重复元素 II 算法解析
- ☆打卡算法☆LeetCode 226. 翻转二叉树 算法解析
- LeetCode笔记:Weekly Contest 309
- LeetCode笔记:Weekly Contest 303
- leetcode-剑指offer59-I 滑动窗口的最大值
- LeetCode 704 二分查找 C++ 解法
- LeetCode 刷题笔记——day 7
- map小试牛刀,LeetCode界的abandon有多难?
- LeetCode第333场,第二题差点没做出来是几个意思……
- js刷LeetCode拿offer之滑动窗口
- Leetcode 矩阵置零
- 【Leetcode-链表强训】
- LeetCode每日一题:合并两个有序数组