Computer >> Máy Tính >  >> Lập trình >> Python

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

Giả sử chúng ta có một mảng A, ở đây A [i] cho biết giá của một cổ phiếu nhất định vào ngày thứ i. Chúng ta phải tìm ra lợi nhuận tối đa. Chúng tôi có thể hoàn thành bao nhiêu giao dịch tùy thích. (Giao dịch có nghĩa là mua và bán cổ phiếu). Nhưng chúng ta phải lưu ý rằng chúng ta không được tham gia vào nhiều giao dịch cùng một lúc. Vì vậy, chúng tôi phải bán cổ phiếu trước khi mua cổ phiếu mới.

Giả sử mảng như A =[7, 1, 5, 3, 6, 4], thì kết quả sẽ là 7. Như chúng ta thấy, nếu chúng ta mua vào ngày thứ 2 (chỉ số 1), thì nó sẽ mất 1 như giá mua. Sau đó, nếu chúng ta bán vào ngày 3, lợi nhuận sẽ là 5 - 1 =4. Sau đó mua vào ngày 4 và bán vào ngày 5, như vậy lợi nhuận sẽ là 6 - 3 =3

Để giải quyết vấn đề này, hãy làm theo các bước sau -

  • hãy để câu trả lời =0
  • cho tôi trong phạm vi từ 0 đến n - 1 (n là số phần tử trong A) -
    • nếu A [i] - A [i - 1]> 0, thì
      • answer:=answer + A [i] - A [i - 1]
  • trả lời câu trả lời

Ví dụ

Hãy cho chúng tôi xem việc triển khai để hiểu rõ hơn

class Solution(object):
   def maxProfit(self, prices):
      """
      :type prices: List[int]
      :rtype: int
      """
      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