LeetCode/Easy
121. Best Time to Buy and Sell Stock
GenieLove!
2022. 1. 16. 12:58
728x90
반응형
Go
func maxProfit(prices []int) int {
minPrice := prices[0]
profit := 0
for _, v := range prices[1:] {
profit = intMax(profit, v - minPrice)
minPrice = intMin(minPrice, v)
}
return profit
}
func intMax(a int, b int) int {
if a > b {
return a
}
return b
}
func intMin(a int, b int) int {
if a < b {
return a
}
return b
}
Python
class Solution:
def maxProfit(self, prices: List[int]) -> int:
max_profit = 0
min_price = prices[0]
for v in iter(prices[1:]):
max_profit = max(max_profit, v - min_price)
min_price = min(min_price, v)
return max_profit
# 두번째 방법
# min_price = prices[0]#가장 작은 가격
# max_price = 0
# max_profit = 0
# for v in iter(prices[1:]):
# max_price = max(v, max_price)
# if v < min_price:
# max_profit = max(max_price - min_price, max_profit)
# min_price, max_price = v, 0
# return max(max_profit, max_price - min_price)
# 첫번째 방법 -> 타임아웃
# result = 0
# for i, v in enumerate(prices[:-1]):
# max_price = max(prices[i+1:]) -v
# if result < max_price:
# result = max_price
# return result
728x90
반응형