Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 주식을 사고 팔기 가장 좋은시기 II

<시간/>

배열 A가 있다고 가정합니다. 여기서 A[i]는 i일에 주어진 주식의 가격을 나타냅니다. 우리는 최대의 이익을 찾아야 합니다. 원하는 만큼 거래를 완료할 수 있습니다. (거래는 주식을 사고 파는 것을 의미합니다). 그러나 우리는 동시에 여러 거래에 참여할 수 없다는 점을 명심해야 합니다. 그래서 우리는 새 주식을 사기 전에 주식을 팔아야 합니다.

배열이 A =[7, 1, 5, 3, 6, 4]와 같다고 가정하면 결과는 7이 됩니다. 보시다시피, 2일차(인덱스 1)에 구매하면 다음과 같이 1이 걸립니다. 구매 가격. 그런 다음 3일에 매도하면 이익은 5 – 1 =4가 됩니다. 그런 다음 4일에 사고 5일에 매도하므로 이익은 6 – 3 =3이 됩니다.

이 문제를 해결하려면 다음 단계를 따르십시오 -

  • 대답 =0
  • 0 ~ n – 1 범위의 i에 대해 (n은 A의 요소 수) −
    • A[i] – A[i – 1]> 0이면
      • 답변 :=대답 + A[i] – A[i – 1]
  • 반환 응답

더 나은 이해를 위해 구현을 살펴보겠습니다.

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]))

입력

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

출력

13