- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Best Time to Buy and Sell Stock II in Python
Suppose we have an array A, here A[i] is indicating the price of a given stock on day i. We have to find the maximum profit. We can complete as many transactions as we like. (Transaction means to buy and sell stocks). But we have to keep in mind that we may not engage in multiple transactions at the same time. So we have to sell the stock before buying the new one.
Suppose the array is like A = [7, 1, 5, 3, 6, 4], then the result will be 7. As we can see, if we buy on day 2 (index 1), then it will take 1 as a buying price. Then if we sell on day 3, the profit will be 5 – 1 = 4. Then buy on day 4, and sell on day 5, so profit will be 6 – 3 = 3
To solve this, follow these steps −
- let answer = 0
- for i in range 0 to n – 1 (n is the number of elements in A) −
- if A[i] – A[i – 1] > 0, then
- answer := answer + A[i] – A[i – 1]
- if A[i] – A[i – 1] > 0, then
- return answer
Example
Let us see the implementation to get a better understanding
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]))
Input
print(ob1.maxProfit([7,2,5,8,6,3,1,4,5,4,7]))
Output
13
Advertisements
To Continue Learning Please Login
Login with Google