Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Thời điểm tốt nhất mua bán cổ phiếu II trong Python


Cho mảng giá cổ phiếu A[i] ngày i. Tìm lợi nhuận tối đa, có thể giao dịch nhiều lần (mua rồi bán mới được mua tiếp). Ví dụ: [7,1,5,3,6,4] → 7 (mua ngày 2 bán ngày 3: 4, mua ngày 4 bán ngày 5: 3).

Giải pháp

Tổng tất cả các chênh lệch dương giữa ngày liên tiếp:

  • ans = 0.
  • Duyệt i từ 1 đến n-1: nếu prices[i] - prices[i-1] > 0 → ans += chênh lệch.

Ví dụ

Triển khai Python:

class Solution(object): 
    def maxProfit(self, prices): 
        ans = 0 
        for i in range(1,len(prices)): 
            if prices[i] - prices[i-1] >0: 
                ans+=(prices[i] - prices[i-1]) 
        return ans 
ob1 = Solution() 
print(ob1.maxProfit([7,2,5,8,6,3,1,4,5,4,7]))

Đầu vào

print(ob1.maxProfit([7,2,5,8,6,3,1,4,5,4,7]))

Đầu ra

13