This commit is contained in:
youngyangyang04
2021-11-21 15:47:10 +08:00
parent 7c9109daa5
commit 0833024aa3

View File

@ -4,7 +4,7 @@
</a>
## 122.买卖股票的最佳时机II
# 122.买卖股票的最佳时机II
[力扣题目链接](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/)
@ -16,19 +16,19 @@
示例 1:
输入: [7,1,5,3,6,4]
输出: 7
解释: 在第 2 天(股票价格 = 1的时候买入在第 3 天(股票价格 = 5的时候卖出, 这笔交易所能获得利润 = 5-1 = 4。随后在第 4 天(股票价格 = 3的时候买入在第 5 天(股票价格 = 6的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
* 输入: [7,1,5,3,6,4]
* 输出: 7
* 解释: 在第 2 天(股票价格 = 1的时候买入在第 3 天(股票价格 = 5的时候卖出, 这笔交易所能获得利润 = 5-1 = 4。随后在第 4 天(股票价格 = 3的时候买入在第 5 天(股票价格 = 6的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
示例 2:
输入: [1,2,3,4,5]
输出: 4
解释: 在第 1 天(股票价格 = 1的时候买入在第 5 天 (股票价格 = 5的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
* 输入: [1,2,3,4,5]
* 输出: 4
* 解释: 在第 1 天(股票价格 = 1的时候买入在第 5 天 (股票价格 = 5的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
示例 3:
输入: [7,6,4,3,1]
输出: 0
解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
* 输入: [7,6,4,3,1]
* 输出: 0
* 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
提示:
* 1 <= prices.length <= 3 * 10 ^ 4
@ -43,7 +43,7 @@
想获得利润至少要两天为一个交易单元。
## 贪心算法
### 贪心算法
这道题目可能我们只会想,选一个低的买入,在选个高的卖,在选一个低的买入.....循环反复。
@ -92,7 +92,7 @@ public:
* 时间复杂度O(n)
* 空间复杂度O(1)
## 动态规划
### 动态规划
动态规划将在下一个系列详细讲解本题解先给出我的C++代码(带详细注释),感兴趣的同学可以自己先学习一下。
@ -128,9 +128,9 @@ public:
一旦想到这里了,很自然就会想到贪心了,即:只收集每天的正利润,最后稳稳的就是最大利润了。
# 其他语言版本
## 其他语言版本
## Java
### Java
```java
// 贪心思路
@ -168,7 +168,7 @@ class Solution { // 动态规划
## Python
### Python
```python
class Solution:
def maxProfit(self, prices: List[int]) -> int:
@ -192,7 +192,7 @@ class Solution:
return dp[-1][1]
```
## Go
### Go
```golang
//贪心算法
func maxProfit(prices []int) int {
@ -228,7 +228,7 @@ func maxProfit(prices []int) int {
}
```
## Javascript
### Javascript
贪心
```Javascript
var maxProfit = function(prices) {
@ -264,7 +264,7 @@ const maxProfit = (prices) => {
};
```
## C
### C
```c
int maxProfit(int* prices, int pricesSize){
int result = 0;