From 70bfe6df0b50dae7e96b20f6073e87b0f97f036e Mon Sep 17 00:00:00 2001 From: Hinsteny Date: Fri, 21 Jun 2019 09:17:18 +0800 Subject: [PATCH] Add Solution.py for 0122.Best Time to Buy and Sell Stock II --- .../README.md | 37 +++++++++++++++++++ .../Solution.py | 7 ++++ solution/README.md | 4 +- 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 solution/0122.Best Time to Buy and Sell Stock II/README.md create mode 100644 solution/0122.Best Time to Buy and Sell Stock II/Solution.py diff --git a/solution/0122.Best Time to Buy and Sell Stock II/README.md b/solution/0122.Best Time to Buy and Sell Stock II/README.md new file mode 100644 index 0000000000000..b26f6cabae753 --- /dev/null +++ b/solution/0122.Best Time to Buy and Sell Stock II/README.md @@ -0,0 +1,37 @@ +## 买卖股票的最佳时机 II +### 题目描述 + +给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 + +设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 + +注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 + +**示例 1:** +``` +输入: [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 天接连购买股票,之后再将它们卖出。 +  因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。 +``` + +**示例 3:** +``` +输入: [7,6,4,3,1] +输出: 0 +解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。 +``` + +### 解法 +问题描述中, 允许我们进行多次买入卖出操作, 同时还有一个隐含的条件---同一天内可以先卖出再买入; +我们只需要遵照涨买跌卖原则中的涨买原则, 不断比较连续两天中后一天是否比前一天股价高, 是的话就进行前一天买入, 后一天卖出, 累加利润。 + diff --git a/solution/0122.Best Time to Buy and Sell Stock II/Solution.py b/solution/0122.Best Time to Buy and Sell Stock II/Solution.py new file mode 100644 index 0000000000000..cb938f1124b9b --- /dev/null +++ b/solution/0122.Best Time to Buy and Sell Stock II/Solution.py @@ -0,0 +1,7 @@ +class Solution: + def maxProfit(self, prices: List[int]) -> int: + maxprofit = 0 + for i in range(0, len(prices) - 1, 1): + if prices[i + 1] > prices[i]: + maxprofit += prices[i + 1] - prices[i] + return maxprofit \ No newline at end of file diff --git a/solution/README.md b/solution/README.md index 27ef1a02dcc52..dab9ed706b953 100644 --- a/solution/README.md +++ b/solution/README.md @@ -481,9 +481,11 @@ │   ├── Solution.js │   └── Solution.py ├── 0122.Best Time to Buy and Sell Stock II +│   ├── README.md │   ├── Solution.cpp │   ├── Solution.java -│   └── Solution.js +│   ├── Solution.js +│   └── Solution.py ├── 0123.Best Time to Buy and Sell Stock III │   ├── README.md │   ├── Solution.cpp