Menu
CoddyTech

Best Time to Buy and Sell Stock

DễTham lampython iconjava iconcpp iconc iconjs icon+10

Bạn nhận được một danh sách prices, trong đó prices[i] là giá của một cổ phiếu vào ngày i. Bạn có thể mua một cổ phiếu vào một ngày rồi bán vào một ngày sau đó. Hãy trả về lợi nhuận lớn nhất bạn có thể thu được, hoặc 0 nếu mọi giao dịch có thể thực hiện đều bị lỗ.

Hàm

maxProfit(prices: integer-array) → integer
pricesinteger-array
giá cổ phiếu mỗi ngày, theo thứ tự
Trả vềinteger
lợi nhuận lớn nhất từ một lần mua và một lần bán sau đó, hoặc 0

Ràng buộc

  • 1 ≤ prices.length ≤ 105
  • 0 ≤ prices[i] ≤ 104
  • Bạn thực hiện nhiều nhất một giao dịch, và bán vào một ngày sau ngày mua.

Ví dụ

Đầu vào
prices = [7, 2, 5, 9, 1, 4]
Đầu ra
7
Giải thích
Mua vào ngày 1 với giá 2 và bán vào ngày 3 với giá 9, thu lợi nhuận 7. Giá thấp nhất là 1 vào ngày 4, sau mức giá 9, nên bán sau ngày đó chỉ thu được 3.
challenge icon

Câu hỏi mở rộng

Nếu bạn có thể giao dịch bao nhiêu lần tùy thích, nhưng mỗi lần chỉ nắm giữ tối đa một cổ phiếu thì sao?

Đặt lại code
def maxProfit(prices):
    # Viết code tại đây

Kiểm thử #1

Kiểm thử #2

Đối số

prices = [7, 2, 5, 9, 1, 4]

Đầu ra mong đợi

7