best-time-to-buy-and-sell-stock py3
This commit is contained in:
parent
ea19828ef3
commit
731af263a4
25
0121_best-time-to-buy-and-sell-stock/README.md
Normal file
25
0121_best-time-to-buy-and-sell-stock/README.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
You are given an array `prices` where `prices[i]` is the price of a given stock on the `ith` day.
|
||||||
|
|
||||||
|
You want to maximize your profit by choosing a **single day** to buy one stock and choosing a **different day in the future** to sell that stock.
|
||||||
|
|
||||||
|
Return _the maximum profit you can achieve from this transaction_. If you cannot achieve any profit, return `0`.
|
||||||
|
|
||||||
|
**Example 1:**
|
||||||
|
|
||||||
|
Input: prices = [7,1,5,3,6,4]
|
||||||
|
Output: 5
|
||||||
|
Explanation: Buy on day 2 (price = 1) and sell on day 5 (price = 6), profit = 6-1 = 5.
|
||||||
|
Note that buying on day 2 and selling on day 1 is not allowed because you must buy before you sell.
|
||||||
|
|
||||||
|
|
||||||
|
**Example 2:**
|
||||||
|
|
||||||
|
Input: prices = [7,6,4,3,1]
|
||||||
|
Output: 0
|
||||||
|
Explanation: In this case, no transactions are done and the max profit = 0.
|
||||||
|
|
||||||
|
|
||||||
|
**Constraints:**
|
||||||
|
|
||||||
|
* `1 <= prices.length <= 105`
|
||||||
|
* `0 <= prices[i] <= 104`
|
20
0121_best-time-to-buy-and-sell-stock/python3/solution.py
Normal file
20
0121_best-time-to-buy-and-sell-stock/python3/solution.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Time: O(N)
|
||||||
|
# Space: O(1)
|
||||||
|
class Solution:
|
||||||
|
def maxProfit(self, prices: List[int]) -> int:
|
||||||
|
if len(prices) < 1: return 0
|
||||||
|
|
||||||
|
i, j = 0, 1
|
||||||
|
max_profit = 0
|
||||||
|
|
||||||
|
while i <= j < len(prices):
|
||||||
|
max_profit = max(prices[j] - prices[i], max_profit)
|
||||||
|
|
||||||
|
# Buy low, sell high — so we need to keep moving i (like
|
||||||
|
# a buy pointer) if jth price is smaller than what ith is.
|
||||||
|
if prices[j] < prices[i]:
|
||||||
|
i = j
|
||||||
|
else:
|
||||||
|
j += 1
|
||||||
|
|
||||||
|
return max_profit
|
Loading…
Reference in New Issue
Block a user