-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path19_maxProfit.py
More file actions
25 lines (25 loc) · 996 Bytes
/
19_maxProfit.py
File metadata and controls
25 lines (25 loc) · 996 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
'''Time Complexity O(N) 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.'''
from typing import List
class Solution:
def maxProfit(self, prices: List[int]) -> int:
if len(prices)==0:return 0
size=len(prices)
profit=0
i,j=0,1
while i<j and j<size:
currProfit=prices[j]-prices[i]
profit=max(profit,currProfit)
if prices[j]<prices[i]:
i=j
j+=1
return profit