Problem of the day
You are given an array/list 'prices' where the elements of the array represent the prices of the stock as they were yesterday and indices of the array represent minutes. Your task is to find and return the maximum profit you can make by buying and selling the stock. You can buy and sell the stock only once.
Note:
You canβt sell without buying first.
For Example:
For the given array [ 2, 100, 150, 120],
The maximum profit can be achieved by buying the stock at minute 0 when its price is Rs. 2 and selling it at minute 2 when its price is Rs. 150.
So, the output will be 148.
The first line contains a single integer βTβ denoting the number of test cases to be run. Then the test cases follow.
The first line of each test case contains a single integer βNβ, representing the size of the array.
The second line of each test case contains βNβ space-separated integers representing the elements of the given array.
Output Format:
For each test case, print a single integer representing the maximum profit you can achieve. If the maximum profit is negative, print 0.
Output for each test case will be printed in a separate line.
Note :
You are not required to print anything, it has already been taken care of. Just implement the function.
1 <= T <= 10
2 <= N <= 10^4
1 <= ARR[i] <= 10^9
Time Limit: 1 sec.
2
4
1 2 3 4
4
2 2 2 2
3
0
For the first test case, itβs optimal to buy the stock at minute 0 and sell it at minute 3 to get a maximum profit of 3.
For the second test case, the maximum profit will be 0 for all possible ways of buying and selling stock.
2
6
17 20 11 9 12 6
4
98 101 66 72
3
6
Try to check all the possible ways of buying and selling stocks.
We will check all the possible ways of buying and selling stocks. We will fix the time we are buying the stock and check all the possible minutes we can sell this stock and update the maximum profit we can get. Now we will take the maximum profit for all the possible buying time and that would be our final maximum profit.
Algorithm:
O(N^2), where βNβ is the size of the array.
Since we are iterating over all the possible buying time and for each we are considering all the selling time, the final time complexity will be O(N^2).
O(1)
Constant space is used.